Java 菜鸟教程

Java 流程控制

Java 数组

Java 面向对象(I)

Java 面向对象(II)

Java 面向对象(III)

Java 异常处理

Java 列表(List)

Java Queue(队列)

Java Map集合

Java Set集合

Java 输入输出(I/O)

Java Reader/Writer

Java 其他主题

Java 程序清除StringBuffer

Java 实例大全

在此示例中,我们将学习使用delete()和setLength()方法清除字符串缓冲区,并在Java中创建一个新的StringBuffer对象。

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

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

    //创建一个字符串缓冲区
    StringBuffer str = new StringBuffer();

    //将字符串添加到字符串缓冲区
    str.append("Java");
    str.append(" is");
    str.append(" popular.");
    System.out.println("StringBuffer: " + str);

    //清除字符串
    //使用delete()
    str.delete(0, str.length());
    System.out.println("更新后的 StringBuffer: " + str);
  }
}

输出结果

StringBuffer: Java is popular.
更新后的 StringBuffer:

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

在此,delete()方法将删除指定索引号内的所有字符。

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

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

    //创建一个字符串缓冲区
    StringBuffer str = new StringBuffer();

    //将字符串添加到字符串缓冲区
    str.append("Java");
    str.append(" is");
    str.append(" awesome.");
    System.out.println("StringBuffer: " + str);

    //清除字符串
    //使用 setLength()
    str.setLength(0);
    System.out.println("更新后的 StringBuffer: " + str);
  }
}

输出结果

StringBuffer: Java is awesome.
更新后的 StringBuffer

这里,setLength()方法将StringBuffer中的字符序列更改为新的字符序列。并且,将新字符序列的长度设置为0。
因此,旧的字符序列被垃圾回收。

注意:SetLength()方法完全忽略字符串缓冲区中存在的字符序列。 而,delete()方法访问字符序列并将其删除。 因此,setLength()比delete()更快。

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

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

    //创建一个字符串缓冲区
    StringBuffer str = new StringBuffer();

    //将字符串添加到字符串缓冲区
    str.append("Java");
    str.append(" is");
    str.append(" awesome.");
    System.out.println("StringBuffer: " + str);

    //清除字符串
    //使用 new
    //在这里,新对象被创建并分配给str
    str = new StringBuffer();
    System.out.println("更新后的 StringBuffer: " + str);
  }
}

输出结果

StringBuffer: Java is awesome.
更新后的 StringBuffer:

在这里,new StringBuffer()创建一个新的字符串缓冲区对象,并将先前的变量分配给新对象。 在这种情况下,先前的对象将在那里。 但是它将无法访问,因此将被垃圾回收。
因为每次都不清除先前的字符串缓冲区,而是创建了一个新的字符串缓冲区。 因此,在性能方面效率较低。

Java 实例大全