Java 程序:清空 StringBuffer

示例 1:使用 StringBuffer 的 delete() 方法清除的 Java 程序

class Main {
  public static void main(String[] args) {

    // create a string buffer
    StringBuffer str = new StringBuffer();

    // add string to string buffer
    str.append("Java");
    str.append(" is");
    str.append(" popular.");
    System.out.println("StringBuffer: " + str);

    // clear the string
    // using delete()
    str.delete(0, str.length());
    System.out.println("Updated StringBuffer: " + str);
  }
}

输出

StringBuffer: Java is popular.
Updated StringBuffer: 

在上面的示例中,我们使用了 StringBuffer 类的 delete() 方法来清除字符串缓冲区。

在这里,delete() 方法会删除指定索引范围内的所有字符。


示例 2:使用 setLength() 清除 StringBuffer

class Main {
  public static void main(String[] args) {

    // create a string buffer
    StringBuffer str = new StringBuffer();

    // add string to string buffer
    str.append("Java");
    str.append(" is");
    str.append(" awesome.");
    System.out.println("StringBuffer: " + str);

    // clear the string
    // using setLength()
    str.setLength(0);
    System.out.println("Updated StringBuffer: " + str);
  }
}

输出

StringBuffer: Java is awesome.
Updated StringBuffer

在这里,setLength() 方法将 StringBuffer 中的字符序列更改为新的字符序列。并将新字符序列的长度设置为 0。

因此,旧的字符序列会被垃圾回收。

注意setLength() 方法会完全忽略字符串缓冲区中存在的字符序列。但是,delete() 方法会访问字符序列并删除它。因此,setLength()delete() 快。


示例 3:通过创建新对象来清除 StringBuffer

class Main {
  public static void main(String[] args) {

    // create a string buffer
    StringBuffer str = new StringBuffer();

    // add string to string buffer
    str.append("Java");
    str.append(" is");
    str.append(" awesome.");
    System.out.println("StringBuffer: " + str);

    // clear the string
    // using new
    // here new object is created and assigned to str
    str = new StringBuffer();
    System.out.println("Updated StringBuffer: " + str);
  }
}

输出

StringBuffer: Java is awesome.
Updated StringBuffer:

在这里,new StringBuffer() 创建了一个新的字符串缓冲区对象,并将先前的 变量 赋值给新对象。在这种情况下,先前的 对象 仍然存在。但它将无法访问,因此会被垃圾回收。

由于每次都不是清除先前的字符串缓冲区,而是创建了一个新的字符串缓冲区。因此,在性能方面效率较低。

你觉得这篇文章有帮助吗?

我们的高级学习平台,凭借十多年的经验和数千条反馈创建。

以前所未有的方式学习和提高您的编程技能。

试用 Programiz PRO
  • 交互式课程
  • 证书
  • AI 帮助
  • 2000+ 挑战