1. 程式人生 > >Java String、StringBuffer、StringBuilder類

Java String、StringBuffer、StringBuilder類

建立字串的方式有很多,String 類有 11 種構造方法,這些方法提供不同的引數來初始化字串:
1、直接賦值,String a = "abc";
2、利用字元陣列,char[] b = {'a', 'b','c'};String c = new String(b);
還有很多,比如利用StringBuffer、StringBuilder類。
注意:String 類是不可改變的,所以你一旦建立了 String 物件,那它的值就無法改變了.如果需要對字串做很多修改,那麼應該選擇使用 StringBuffer & StringBuilder 類。注意: String a = “abc”;a = a + “def”;這裡字串a的值改變了,但是內部的操作是首先把串池中的abc地址賦給a,第二句是把abcdef的地址賦給a,之前的字串物件仍然存在,相當於垃圾。

public static void main(String[] args) {
	
	String a = "abc";
	char[] b = {'a', 'b','c'};
	System.out.println(a);
	System.out.println(b);
	String c = new String(b);
	System.out.println(c);
	System.out.println(a.concat(c));//連線兩個字串
	
}

當對字串進行修改的時候,需要使用 StringBuffer 和 StringBuilder 類
StringBuffer 和 StringBuilder 類的物件能夠被多次的修改,並且不產生新的未使用物件。它和 StringBuffer 之間的最大不同在於 StringBuilder 的方法不是執行緒安全的(不能同步訪問)。
由於 StringBuilder 相較於 StringBuffer 有速度優勢,所以多數情況下建議使用 StringBuilder 類。然而在應用程式要求執行緒安全的情況下,則必須使用 StringBuffer 類。

public static void main(String[] args) {
	
	StringBuilder d = new StringBuilder("abc");
	System.out.println(d);
	d.append(b); // 可以改變字串
	System.out.println(d);
	StringBuffer e = new StringBuffer("abc");
	e.append(b);  // 可以改變字串
	System.out.println(e);
}