在此示例中,我们将学习使用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()创建一个新的字符串缓冲区对象,并将先前的变量分配给新对象。 在这种情况下,先前的对象将在那里。 但是它将无法访问,因此将被垃圾回收。
因为每次都不清除先前的字符串缓冲区,而是创建了一个新的字符串缓冲区。 因此,在性能方面效率较低。