English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
В этом примере мы узнаем, как использовать методы delete() и setLength() для очистки буфера строк и создания нового объекта StringBuffer в Java.
class Main { public static void main(String[] args) { //Создание буфера строк StringBuffer str = new StringBuffer(); //Добавление строки в буфер строк 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 популярен. Обновленный StringBuffer:
В предыдущем примере мы использовали метод delete() класса StringBuffer для очистки буфера строк.
Здесь метод delete() удаляет все символы в заданном интервале индексов.
class Main { public static void main(String[] args) { //Создание буфера строк StringBuffer str = new StringBuffer(); //Добавление строки в буфер строк 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 awesome. Обновлённый StringBuffer
Здесь метод setLength() изменяет последовательность символов в StringBuffer на новую и устанавливает её длину в 0.
Таким образом, старая последовательность символов перезапускается мусорными сборщиками.
Внимание: Метод setLength() полностью игнорирует существующую последовательность символов в буфере строк, в то время как метод delete() доступ к этой последовательности и её удаление. Таким образом, setLength() быстрее, чем delete().
class Main { public static void main(String[] args) { //Создание буфера строк StringBuffer str = new StringBuffer(); //Добавление строки в буфер строк str.append("Java"); str.append(" is"); str.append(" awesome."); System.out.println("StringBuffer: " + str); //Очистка строки //Использование new //Здесь создается новый объект и assigns ему str str = new StringBuffer(); System.out.println("Обновленный StringBuffer: " + str); } }
Результат вывода
StringBuffer: Java awesome. Обновленный StringBuffer:
Здесь new StringBuffer() создает новый объект буфера строк и assigns прежний переменной новому объекту. В этом случае прежний объект останется там. Но он будет недоступен, поэтому его удалят из списка для переработки.
Потому что каждый раз не очищается предыдущий буфер строк, а создается новый буфер строк. Поэтому, с точки зрения производительности, эффективность较低.