在此示例中,我們將學習使用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); } }
輸出結果
StringBuffer: Java is popular. 更新后的 StringBuffer:
在上面的示例中,我們使用了StringBuffer類的 delete() 方法來清除字符串緩沖區(qū)。
在此,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); //清除字符串 //使用 setLength() str.setLength(0); System.out.println("更新后的 StringBuffer: " + str); } }
輸出結果
StringBuffer: Java is awesome. 更新后的 StringBuffer
這里,setLength()方法將StringBuffer中的字符序列更改為新的字符序列。并且,將新字符序列的長度設置為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); } }
輸出結果
StringBuffer: Java is awesome. 更新后的 StringBuffer:
在這里,new StringBuffer()創(chuàng)建一個新的字符串緩沖區(qū)對象,并將先前的變量分配給新對象。 在這種情況下,先前的對象將在那里。 但是它將無法訪問,因此將被垃圾回收。
因為每次都不清除先前的字符串緩沖區(qū),而是創(chuàng)建了一個新的字符串緩沖區(qū)。 因此,在性能方面效率較低。