字符串廣泛應用在Java編程中,在Java中字符串屬於對象,Java提供了String類來創建和操作字符串。在程序開
發中字符串無處不在,如用戶登陸時輸入的用戶名、密碼等使用的就是字符串。其實,在前面的章節中我們就已經使
用了字符串,例如我們在控制台中輸出的 "Hello World"等。
在Java中,字符串被作為 String 類型的對象處理。 String 類位於 java.lang 包中。默認情況下,該包被自動導入
所有的程序。
java.lang.String類代表不可變的字符序列,"xxxx"為該類的一個對象。
String類常見的構造方法有:
1)String(String original):創建一個String對象為original的拷貝;
2)String(char[] value):用一個字符數組創建一個String對象;
3)String(char[] value,int offset,int count):用一個字符數組從offset項開始的count個字符序列創建一個String對
象;
創建字符串的簡單的方式如下:
String greeting = "Hello world!";
在代碼中遇到字符串常量時,這裡的值是"Hello world!",編譯器會使用該值創建一個String對象。創建一個字符
串對象greeting="Hello World!";時,Java運行時(運行中JVM)會拿著這個"imooc"Hello World!;在String池中找是否存
在內容相同的字符串對象,如果不存在,則在池中創建一個字符串"Hello World!";,否則,不在池中添加。
和其它對象一樣,可以使用關鍵字和構造方法來創建String對象。String類有11種構造方法,這些方法提供不同
的參數來初始化字符串,使用new關鍵字來創建對象,則一定會(在堆區或棧區)創建一個新的對象。這裡就是直接
創建字符串對象。比如提供一個字符數組參數:
public class Test{ public static void main(String[] args){ //創建字符數組 char[] helloArray = {'h', 'e', 'l', 'l', 'o', '.'}; //使用構造方法創建字符串 String helloString = new String(helloArray); System.out.println(helloString); } }
以上實例編譯運行結果如下:
注意:String類是不可改變的,所以你一旦創建了String對象,那它的值就無法改變了。 String 對象創建後則不能
被修改,是不可變的,所謂的修改其實是創建了新的對象,所指向的內存空間不同。如果需要對字符串做很多修改,
那麼應該選擇使用StringBuffer類或StringBuilder 類。
用於獲取有關對象的信息的方法稱為訪問器方法。String類的一個訪問器方法是length()方法,它返回字符串對象
包含的字符數。
下面的代碼執行後,len變量等於17:
public class Test{ public static void main(String[] args){ String palindrome = "Dot saw I was Tod"; int len = palindrome.length(); System.out.println( "String Length is : " + len ); } }
以上實例編譯運行結果如下:
String類提供了連接兩個字符串的方法:
(1)string1.concat(string2);
返回string2連接string1的新字符串。也可以對字符串常量使用concat()方法,如:
"My name is ".concat("Zara");
結果如下:
My name is Zara
(2)更常用的是使用'+'操作符來連接字符串,如:
"Hello," + " world" + "!"
結果如下:
"Hello, world!"
下面是一個例子:
public class Test{ public static void main(String[] args){ String string1 = "saw I was "; System.out.println("Dot " + string1 + "Tod"); } }以上實例編譯運行結果如下:
Dot saw I was Tod
我們知道輸出格式化數字可以使用printf()和format()方法。String類使用靜態方法format()返回一個String對象而不
是PrintStream對象。String類的靜態方法format()能用來創建可復用的格式化字符串,而不僅僅是用於一次打印輸出。
如下所示:
System.out.printf("The value of the float variable is " + "%f, while the value of the integer " + "variable is %d, and the string " + "is %s", floatVar, intVar, stringVar);
你也可以這樣寫:
String fs; fs = String.format("The value of the float variable is " + "%f, while the value of the integer " + "variable is %d, and the string " + "is %s", floatVar, intVar, stringVar); System.out.println(fs);
下面是String類支持的方法,更多詳細,參看Java API文檔: