一直使用new来清空,刚度娘了下,结合几个文章内容摘记一下.
几种方法:方法1:StringBuffer my_StringBuffer = new StringBuffer();
my_StringBuffer.append('helloworld'); //添加字符串到StringBuffer中
int sb_length = my_StringBuffer.length();// 取得字符串的长度
my_StringBuffer.delete(0,sb_length); //删除字符串从0~sb_length-1处的内容 (这个方法就是用来清除StringBuffer中的内容的)
方法2:my_StringBuffer.setLength(0); //设置StringBuffer变量的长度为0
方法3:也是我以前一直用的my_StringBuffer = new StringBuffer()
几种方法的效率:
测试程序: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对象中的内容效率最高。