1. 程式人生 > >字串相關操作——java

字串相關操作——java

                                           字串相關操作

1.字串變數

String s;

//String首字母大寫,所以其是一個類,String的變數是物件的管理者而非所有者。

String首字母大寫,所以其是一個類,String的變數是物件的管理者而非所有者。

2.物件的建立與初始化

String s ;                     //給s分配了空間,類名+變數名
s = new String(“a string”);    //生成了s物件,初始化了s的例項變數


//兩步合併為一步
String s = new String(“a string”);//上面兩種為對類的建立及初始化

//或者
String s="a string";

步驟:

          a.建立了一個String的物件

          b.用“a string”初始化這個物件

          c.建立管理這個物件的變數s,讓s來管理這個變數

3.字串連線

演示程式碼:

package spoc;

import java.util.Scanner;

public class print_out {

	public static void main(String[] args) {
		String s="hi";
		System.out.println(24+12+s);        //36hi
		System.out.println(s+24+12);        //hi2412
		System.out.println(s+(24+12));      //hi36
		
	}
}

結果輸出:

注意:

a.按優先順序,先遇到數字+數字+字串,則數字相加+字串輸出

String s="hi";
System.out.println(24+12+s);        //36hi

b.遇到字串+數字+數字,則全部按字串輸出(因為按優先順序先遇到字串,所以後面的數字按字串處理)

String s="hi";
System.out.println(s+24+12);        //hi2412

c.若在字串後的數字想以數值輸出,則給數字加括號,改變優先順序。

String s="hi";
System.out.println(s+(24+12));      //hi36

4.輸入字串

Scanner in=new Scanner(System.in );
String a = in.next();            //讀入遇到空格,回車,tab結束
in.nextLine();                   //讀入一整行

5.判斷兩字串內容是否相等

注意:

         a.  判斷兩字串是否為同一個字串. System.out.println(a=="iii");      

         b.若要比較兩字串的內容是否相等要用,a.equals("iii"));(a為字串變數)

package spoc;

import java.util.Scanner;

public class print_out {

	public static void main(String[] args) {
	//判斷輸入內容是否相等
		Scanner in=new Scanner(System.in );
		String a = in.next();
		System.out.println(a=="iii");       //判斷兩字串是否為同一個字串
		System.out.println(a.equals("iii"));//判斷兩字串內容是否相等

	}
}

若鍵入 iii輸出結果為:  

 6.字串運算

a.字串比較大小

注意:若第二,三位都不同,只返回第二位差值

s1.compareTo(s2);
 /*s1<s2,結果為負;
   s1==s2,結果為0;
   s1>s2,結果為正
*/

//compareToIgnoreCase可以不區分大小寫的比較大寫

b.獲得字串長度

s.length()

c.訪問String中的字元

s.charAt(2)//訪問s字串中的第二號字元,從0開始編號

d.得到字串

s.substring(2);//擷取2號位置以後(包括2號)的字串,
s.substring(2,5);//擷取2到5之前(即到第四位);

e.尋找字元

s.indexOf("4");//輸出所在位置,若不存在輸出-1;
s.indexOf("微笑");//輸出第一個元素所在位置,若不存在輸出-1;

//需返回字串中第二次出現a的位置,需設定變數loc標記第一次出現的位置
int loc=s.indexOf("a");
s.indexOf("a",loc+1);//尋找從loc+1開始,下一個字元"a"的位置

f.其他String操作

s.toUpperCase();//全部轉大寫
s.toLowerCase();//全部轉小寫
s.replace("a","cj");//把所以的a替換成cj
s.trim();//刪掉兩邊的字串
s.startsWith("a");//字母是否以"a"開頭
s.endsWith("h");//字母是否以"h"結尾

程式碼: 第a.b.c段程式碼:

package spoc;

import java.util.Scanner;

public class str2 {

	public static void main(String[] args) {
		//都不能修改字串本身
		String s="abaa";
		String k="Abvca";
		String m="01234微笑";
//a.比較大小
		System.out.println("abbb".compareTo(s));//值為1
						//"abc"與s的差值,若第二,三位都不同,只返回第二位差值
		System.out.println(k.compareTo(s));
		
		
//b.獲得字串長度
//c.訪問String中的字元
		System.out.println(k.charAt(2));//輸出第二號元素(從0開始編號)
		for(int i=0;i<s.length();i++)//遍歷s中的元素
		{
			System.out.print(s.charAt(i));
		}

	}
}

輸出結果:

第d.e.f段程式碼:

package spoc;

import java.util.Scanner;

public class str2 {

	public static void main(String[] args) {
		String s="abaa";
		String k="AbvcA";
		String m="01234微笑";
//d.得到字串
		System.out.println(m.substring(2));//擷取2號位置以後(包括2號)的字串;234微笑
		System.out.println(m.substring(2,5));//擷取2到5之前()即到第四位;234,
//e.尋找字元	
		System.out.println(s.indexOf("4"));//輸出所在位置,若不存在輸出-1;
		System.out.println(m.indexOf("微笑"));//輸出第一個元素所在位置,若不存在輸出-1;
//尋找第二次出現的位置
		int loc=k.indexOf("A");
		System.out.println(k.indexOf("A",loc+1));//尋找從loc+1開始,下一個字元"a"的位置
//f.其他String操作		
		System.out.println(s.toUpperCase());//全部轉大寫
		System.out.println(s.toLowerCase());//全部轉小寫
		System.out.println(s.replace("a","cj"));//把所以的a替換成cj
		s.trim();//刪掉兩邊的字串
		System.out.println(s.startsWith("a"));//字母是否以"a"開頭
		System.out.println(s.endsWith("h"));//字母是否以"h"結尾

	}
}

輸出結果: