1. 程式人生 > >StringBuffer清空

StringBuffer清空

bsp sys 開發程序 循環 tar getname ref setlength get

轉載自:http://blog.sina.com.cn/s/blog_56fd58ab0100qfcz.html

在開發程序的時候,經常使用StringBuffer來進行字符串的拼接。如果在循環中來反復的做字符串拼接時,會清空Stringbuffer中的內容,然後再拼接新的字符串信息。

例如:

StringBuffer sb = new StringBuffer("");

for (UserInfo ui : userInfoList) {

sb = new StringBuffer("");

sb.append("姓名:");

sb.append(ui.getName());

sb.append(" ");

sb.append("年齡:");

sb.append(ui.getAge());

System.out.println(sb.toString());

}

在循環中使用sb = new StringBuffer("");來清空sb中的信息。

StringBuffer提供了以下連個方法:

1、delete(int start, int end)
移除此序列的子字符串中的字符

2、setLength(int newLength)
設置字符序列的長度。

測試程序:

private static void testStringBufferclear() {
StringBuffer sbf = new StringBuffer("wwwwww");
StringBuffer sbi = new StringBuffer("wwwwww");
long s1 = System.currentTimeMillis();
for (int i = 0; i < 500000; i++) {
sbi.setLength(0);
}
long s11 = System.currentTimeMillis();
System.out.println("StringBuffer-setLength:" + (s11 - s1));

s1 = System.currentTimeMillis();
for (int i = 0; i < 500000; i++) {
sbf.delete(0, sbf.length());
}
s11 = System.currentTimeMillis();
System.out.println("StringBuffer--delete:" + (s11 - s1));
s1 = System.currentTimeMillis();
for (int i = 0; i < 500000; i++) {
sbf = new StringBuffer("");
}
s11 = System.currentTimeMillis();
System.out.println("StringBuffer--new StringBuffer:" + (s11 - s1));
}
結果:

StringBuffer-setLength:63
StringBuffer--delete:109
StringBuffer--new StringBuffer:78

結論:

要通過使用sbi.setLength(0);來清空StringBuffer對象中的內容效率最高。

StringBuffer清空