在此示例中,我們將學(xué)習(xí)使用delete()和setLength()方法清除字符串緩沖區(qū),并在Java中創(chuàng)建一個新的StringBuffer對象。
class Main {
public static void main(String[] args) {
//創(chuàng)建一個字符串緩沖區(qū)
StringBuffer str = new StringBuffer();
//將字符串添加到字符串緩沖區(qū)
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);
}
}輸出結(jié)果
StringBuffer: Java is popular. 更新后的 StringBuffer:
在上面的示例中,我們使用了StringBuffer類的 delete() 方法來清除字符串緩沖區(qū)。
在此,delete()方法將刪除指定索引號內(nèi)的所有字符。
class Main {
public static void main(String[] args) {
//創(chuàng)建一個字符串緩沖區(qū)
StringBuffer str = new StringBuffer();
//將字符串添加到字符串緩沖區(qū)
str.append("Java");
str.append(" is");
str.append(" awesome.");
System.out.println("StringBuffer: " + str);
//清除字符串
//使用 setLength()
str.setLength(0);
System.out.println("更新后的 StringBuffer: " + str);
}
}輸出結(jié)果
StringBuffer: Java is awesome. 更新后的 StringBuffer
這里,setLength()方法將StringBuffer中的字符序列更改為新的字符序列。并且,將新字符序列的長度設(shè)置為0。
因此,舊的字符序列被垃圾回收。
注意:SetLength()方法完全忽略字符串緩沖區(qū)中存在的字符序列。 而,delete()方法訪問字符序列并將其刪除。 因此,setLength()比delete()更快。
class Main {
public static void main(String[] args) {
//創(chuàng)建一個字符串緩沖區(qū)
StringBuffer str = new StringBuffer();
//將字符串添加到字符串緩沖區(qū)
str.append("Java");
str.append(" is");
str.append(" awesome.");
System.out.println("StringBuffer: " + str);
//清除字符串
//使用 new
//在這里,新對象被創(chuàng)建并分配給str
str = new StringBuffer();
System.out.println("更新后的 StringBuffer: " + str);
}
}輸出結(jié)果
StringBuffer: Java is awesome. 更新后的 StringBuffer:
在這里,new StringBuffer()創(chuàng)建一個新的字符串緩沖區(qū)對象,并將先前的變量分配給新對象。 在這種情況下,先前的對象將在那里。 但是它將無法訪問,因此將被垃圾回收。
因為每次都不清除先前的字符串緩沖區(qū),而是創(chuàng)建了一個新的字符串緩沖區(qū)。 因此,在性能方面效率較低。