Очистка StringBuffer в Java — методы delete и setLength
В этой программе мы научимся очищать StringBuffer тремя разными способами.
Пример 1: очистка StringBuffer с помощью delete()
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:
В примере выше мы использовали метод delete() класса StringBuffer, чтобы очистить строковый буфер.
Здесь delete() удаляет все символы между указанными индексами.
Пример 2: очистка StringBuffer с помощью setLength()
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 is awesome.
Updated StringBuffer
Здесь метод setLength() заменяет существующую последовательность символов в StringBuffer на новую и устанавливает её длину равной 0.
В результате старая последовательность символов собирается сборщиком мусора.
Примечание
Метод setLength() полностью игнорирует текущую последовательность символов в строковом буфере. А метод delete() обращается к ней и удаляет её. Поэтому setLength() быстрее, чем delete().
Пример 3: очистка StringBuffer созданием нового объекта
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. Прежний объект ещё существует, но к нему больше нельзя обратиться, поэтому он будет собран сборщиком мусора.
Поскольку каждый раз вместо очистки старого буфера создаётся новый, этот способ менее эффективен по производительности.