清除 StringBuffer 的 Java 程序
要理解此示例,您应该具备以下 Java 编程的知识:
示例 1:Java 程序使用 delete() 使用 StringBuffer 进行清除
public class Main {
public static void main(String[] args) {
// create a string buffer
StringBuffer str = new StringBuffer();
// add string to string buffer
str.append("Java");
str.append(" is");
str.append(" popular.");
System.out.println("StringBuffer: " + str);
// clear the string
// using delete()
str.delete(0, str.length());
System.out.println("Updated StringBuffer: " + str);
}
}
输出
StringBuffer: Java is popular.
Updated StringBuffer:
在上面的例子中,我们使用了 StringBuffer
类的 delete()
方法来清除字符串缓冲区。
这里,该 delete()
方法删除指定索引号开始的指定长度的字符。
示例 2:使用 setLength() 清除 StringBuffer
public class Main {
public static void main(String[] args) {
// create a string buffer
StringBuffer str = new StringBuffer();
// add string to string buffer
str.append("Java");
str.append(" is");
str.append(" awesome.");
System.out.println("StringBuffer: " + str);
// clear the string
// using setLength()
str.setLength(0);
System.out.println("Updated StringBuffer: " + str);
}
}
输出
StringBuffer:Java isawesome.
Updated StringBuffer:
这里, setLength()
方法将 StringBuffer
的长度设置为 0。也即是清空了 StringBuffer
中的内容。
因此,旧的字符序列被垃圾收集。
注意:该 setLength()
方法完全忽略字符串缓冲区中存在的字符序列。但是,该 delete()
方法访问字符序列并将其删除。因此, setLength()
比更快 delete()
。
示例 3:通过创建新对象清除 StringBuffer
public class Main {
public static void main(String[] args) {
// create a string buffer
StringBuffer str = new StringBuffer();
// add string to string buffer
str.append("Java");
str.append(" is");
str.append(" awesome.");
System.out.println("StringBuffer: " + str);
// clear the string
// using new
// here new object is created and assigned to str
str = new StringBuffer();
System.out.println("Updated StringBuffer: " + str);
}
}
输出
StringBuffer: Java is awesome.
Updated StringBuffer:
在这里, new StringBuffer()
创建一个新的字符串缓冲区对象并将其分配给变量 str
。在这种情况下,变量 str
以前指向的对象仍在那里。但它将无法访问,因此它将被垃圾收集。
这种方法将创建新的对象,因此效率比较低。