在開(kāi)發(fā)程序的時(shí)候,經(jīng)常使用StringBuffer來(lái)進(jìn)行字符串的拼接。如果在循環(huán)中來(lái)反復(fù)的做字符串拼接時(shí),會(huì)清空Stringbuffer中的內(nèi)容,然后再拼接新的字符串信息。
例如:
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());
}
在循環(huán)中使用sb = new StringBuffer("");來(lái)清空sb中的信息。
StringBuffer提供了以下連個(gè)方法:
1、delete(int start, int end)
移除此序列的子字符串中的字符
2、setLength(int newLength)
設(shè)置字符序列的長(zhǎng)度。
測(cè)試程序:
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));
}
結(jié)果:
StringBuffer-setLength:63
StringBuffer--delete:109
StringBuffer--new StringBuffer:78
結(jié)論:
要通過(guò)使用sbi.setLength(0);來(lái)清空StringBuffer對(duì)象中的內(nèi)容效率最高。
聯(lián)系客服