一、構建字符串
通常情況下我們構建字符串都是這個樣子的:
String str = "測試";
如果我們進行字符串的拼接,是這個樣子的:
String str2 = str+"哈哈";
二、問題說明
我們這樣進行字符串的拼接完全沒有任何問題,方便快捷,但是這裏就有一個考慮,如果這樣拼接的次數和量比較大的話,就回非常的影響程序的運行效率,因爲每次進行拼接的時候都會創建一個String的對象。
三、解決
在jdk5.0中引入了StringBuilder類,這個類的前身是StringBuffer,我們可以使用StringBuilder的append方法進行字符串的拼接,這樣拼接出來的效率要高於+拼接(尤其是拼接量比較大的時候)。
/**
* Description :字符串的拼接效率測試
* @param
* @return
* @exception
* @author :loulan
* */
@Test
public void builderString() {
// +拼接開始時間
long time1 = System.currentTimeMillis();
String strj = "開始:";
for (int i = 0; i < 10000; i++) {
strj += i;
}
// +拼接結束時間,同時是StringBuilder拼接開始時間
long time2 = System.currentTimeMillis();
StringBuilder sb = new StringBuilder("開始:");
for (int i = 0; i < 10000; i++) {
sb.append(i);
}
// StringBuilder結束時間
long time3 = System.currentTimeMillis();
System.out.println("兩種拼接方式出來的字符串是否相同: " + strj.equals(sb.toString())); // true
System.out.println("+方式拼接完成執行時間:"+(time2-time1)+"ms"); // 329ms (個人電腦cpu不同,結果不同)
System.out.println("StringBuilder方式拼接完成執行時間:"+(time3-time2)+"ms"); // 1ms
}
所以大量的拼接的時候請使用StringBuiler