English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
在此示例中,我们将学习使用delete()和setLength()方法清除字符串缓冲区,并在Java中创建一个新的StringBuffer对象。
class Main { public static void main(String[] args) { //创建一个字符串缓冲区 StringBuffer str = new StringBuffer(); //Agregar una cadena al buffer de cadenas str.append("Java"); str.append(" es"); str.append(" popular."); System.out.println("StringBuffer: ") + str); //Limpiar la cadena //使用delete() str.delete(0, str.length()); System.out.println("StringBuffer actualizado: ") + str); } }
Resultado de salida
StringBuffer: Java is popular. StringBuffer actualizado:
在上面的示例中,我们使用了StringBuffer类的 delete() 方法来清除字符串缓冲区。
在此,delete()方法将删除指定索引号内的所有字符。
class Main { public static void main(String[] args) { //创建一个字符串缓冲区 StringBuffer str = new StringBuffer(); //Agregar una cadena al buffer de cadenas str.append("Java"); str.append(" es"); str.append(" awesome."); System.out.println("StringBuffer: ") + str); //Limpiar la cadena //使用 setLength() str.setLength(0); System.out.println("StringBuffer actualizado: ") + str); } }
Resultado de salida
StringBuffer: Java es genial. 更新后的 StringBuffer
这里,setLength()方法将StringBuffer中的字符序列更改为新的字符序列。并且,将新字符序列的长度设置为0。
因此,旧的字符序列被垃圾回收。
注意:SetLength()方法完全忽略字符串缓冲区中存在的字符序列。 而,delete()方法访问字符序列并将其删除。 因此,setLength()比delete()更快。
class Main { public static void main(String[] args) { //创建一个字符串缓冲区 StringBuffer str = new StringBuffer(); //Agregar una cadena al buffer de cadenas str.append("Java"); str.append(" es"); str.append(" awesome."); System.out.println("StringBuffer: ") + str); //Limpiar la cadena //Usando new //Aquí, se crea un nuevo objeto y se asigna a str str = new StringBuffer(); System.out.println("StringBuffer actualizado: ") + str); } }
Resultado de salida
StringBuffer: Java es genial. StringBuffer actualizado:
Aquí, new StringBuffer() crea un nuevo objeto de buffer de cadenas y asigna el variable anterior al nuevo objeto. En este caso, el objeto anterior estará allí. Pero no podrá acceder a él, por lo que se reciclará.
Debido a que no se borra el buffer de cadenas anterior cada vez, sino que se crea un nuevo buffer de cadenas, por lo que la eficiencia en términos de rendimiento es baja.