一直使用new来清空,刚度娘了下,结合几个文章内容摘记一下.

几种方法:

  1. 方法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. 方法2:

    my_StringBuffer.setLength(0);           //设置StringBuffer变量的长度为0


  3. 方法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对象中的内容效率最高。