1. 程式人生 > >java(二)String的基本語法

java(二)String的基本語法

一、String類
String類在java.lang包中,java使用String類建立一個字串變數,字串變數屬於物件。java把String類宣告的final類,不能有類。String類物件建立後不能修改,由0或多個字元組成,包含在一對雙引號之間。
二、String類物件的建立
字串宣告:String stringName;
字串建立:stringName = new String(字串常量);或stringName = 字串常量;
三、String類構造方法
1、public String()
無參構造方法,用來建立空字串的String物件。

1 String str1 = new String():

2、public String(String value)
用已知的字串value建立一個String物件。

1 String str2 = new String("asdf"); 
2 String str3 = new String(str2); 

3、public String(char[] value)
用字元陣列value建立一個String物件。

1 char[] value = {"a","b","c","d"};
2 String str4 = new String(value);//相當於String str4 = new String("abcd");

4、public String(char chars[], int startIndex, int numChars)
用字元陣列chars的startIndex開始的numChars個字元建立一個String物件。

1 char[] value = {"a","b","c","d"};
2 String str5 = new String(value, 1, 2);//相當於String str5 = new String("bc");

5、public String(byte[] values)
用位元陣列values建立一個String物件。

1 byte[] strb = new byte[]{65,66};
2 String str6 = new String(strb);//相當於String str6 = new String("AB");

四、String類常用方法
1、字串介紹
1)字串定義 只定義不分配記憶體空間,不做任何操作;
字串初始化 兩種方式直接等號賦值,用new初始化,直接等號賦值放入記憶體池,其它變數也可以引用;new初始化分配記憶體空間,不可引用;
字串賦值為null 初始化了,並且有了引用,但是沒有指向任何記憶體空間
2、求字串長度
public int length()//返回該字串的長度

1 String str = new String("asdfzxc");
2 int strlength = str.length();//strlength = 7

3、求字串某一位置字元
public char charAt(int index)//返回字串中指定位置的字元;注意字串中第一個字元索引是0,最後一個是length()-1。

1 String str = new String("asdfzxc");
2 char ch = str.charAt(4);//ch = z

4、字串比較
1)public int compareTo(String anotherString) //該方法是對字串內容按字典順序進行大小比較,通過返回的整數值指明當前字串與引數字串的大小關係。若當前物件比引數大則返回正整數,反之返回負整數,相等返回0。
2)public int compareToIgnore(String anotherString)//與compareTo方法相似,但忽略大小寫。
3)public boolean equals(Object anotherObject)//比較當前字串和引數字串,在兩個字串相等的時候返回true,否則返回false。
4)public boolean equalsIgnoreCase(String anotherString)//與equals方法相似,但忽略大小寫。

1 String str1 = new String("abc");
2 String str2 = new String("ABC");
3 int a = str1.compareTo(str2);//a>0
4 int b = str1.compareTo(str2);//b=0
5 boolean c = str1.equals(str2);//c=false
6 boolean d = str1.equalsIgnoreCase(str2);//d=true

5)equals 方法是String類從它的超類Object中繼承的, 被用來檢測兩個物件是否相等,即兩個物件的內容是否相等,區分大小寫。
對於字串變數來說,使用“= =”和“equals()”方法比較字串時,其比較方法不同。“= =”比較兩個變數本身的值,即兩個物件在記憶體中的首地址。“equals()”比較字串中所包含的內容是否相同。 例如:

s1 = new String("abc");
s2 = new String("abc");
s1.equals(s2) 是 true

3.對於非字串變數來說,"= ="和"equals"方法的作用是相同的都是用來比較其物件在堆記憶體的首地址,即用來比較兩個引用變數是否指向同一個物件。

class A
{
      A obj1   =   new  A();
      A obj2   =   new  A();
}
    obj1.equals(obj2)是false

5、字串連線
public String concat(String str)//將引數中的字串str連線到當前字串的後面,效果等價於"+"。

1 String str = "aa".concat("bb").concat("cc");
2 相當於String str = "aa"+"bb"+"cc";