本文主要是介绍StringBuffer内容清空效率比较,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
在开发程序的时候,经常使用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内容清空效率比较的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!