English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Основной учебник Java

Java Управление потоком

Java Массивы

Java Ориентированность на объекты (I)

Java Ориентированность на объекты (II)

Java Ориентированность на объекты (III)

Обработка исключений Java

Java Списки (List)

Java Queue (очередь)

Java Map-сборники

Java Set-сборники

Java Ввод/Вывод (I/O)

Java Reader/Writer

Другие темы Java

Очистка StringBuffer в Java

Java полные примеры

В этом примере мы узнаем, как использовать методы delete() и setLength() для очистки буфера строк и создания нового объекта StringBuffer в Java.

Пример 1: Использование delete() для очистки 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() удаляет все символы в заданном интервале индексов.

Пример 2: Очистка StringBuffer с помощью setLength()

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().

Пример 3: Удаление строки через создание нового объекта

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 прежний переменной новому объекту. В этом случае прежний объект останется там. Но он будет недоступен, поэтому его удалят из списка для переработки.
Потому что каждый раз не очищается предыдущий буфер строк, а создается новый буфер строк. Поэтому, с точки зрения производительности, эффективность较低.

Java полные примеры