一、构建字符串
通常情况下我们构建字符串都是这个样子的:
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