Рубрики
Без рубрики

Java StringBuilder

Java StringBuilder, добавление StringBuilder, Пример Java StringBuilder, Буфер строк и строковый конструктор, емкость строкового сборщика, пример вставки, Строковый конструктор

Автор оригинала: Pankaj Kumar.

Класс Java StringBuilder – это изменяемая последовательность символов. Класс StringBuilder может быть сопоставим со строкой, однако класс StringBuilder обеспечивает большую универсальность благодаря своим функциям модификации.

Java StringBuilder

  • Класс StringBuilder предоставляет API , аналогичный StringBuffer , но, в отличие от StringBuffer, он не гарантирует безопасность потоков.
  • Класс Java StringBuilder предназначен для использования в качестве замены буфера строк в местах, где буфер строк использовался одним потоком (как это обычно бывает).
  • Если скорость выполнения и производительность являются фактором, вместо StringBuffer можно использовать класс StringBuilder.
  • Основными операциями, предоставляемыми классом StringBuilder, являются методы append() и insert () . Эти методы перегружены в StringBuilder для размещения различных типов данных.
  • Общий процесс добавления и вставки методов StringBuilder заключается в следующем: (1) преобразует заданные данные в строку, а затем (2) добавляет или вставляет символы этой строки в конструктор строк. Метод Java StringBuilder append() всегда добавляет эти символы в конец конструктора; метод insert() вставляет символы в указанную точку.

Схема классов StringBuilder

Строковый буферизатор и строковый конструктор

Синхронизировано, следовательно, потокобезопасно. Не синхронизировано, не потокобезопасно.
Работает медленнее из-за функции безопасности резьбы Лучшая производительность по сравнению со струнным буфером
Имеет некоторые дополнительные методы – подстроку, длину, емкость и т.д. Не требуется, потому что эти методы тоже присутствуют в строке.
Введено в Java 1.2 Введено в Java 1.5 для повышения производительности.

Конструкторы Java StringBuilder

StringBuilder() Создает конструктор пустых строк с емкостью по умолчанию 16 (16 пустых элементов).
Строковый конструктор(cs последовательности символов) Создает stringbuilder, содержащий те же символы, что и указанная последовательность символов, плюс дополнительные 16 пустых элементов, завершающих последовательность символов.
StringBuilder(int initCapacity) Создает конструктор пустых строк с указанной начальной емкостью.
Строковый конструктор(Строки) Создает stringbuilder, значение которого инициализируется указанной строкой, плюс дополнительные 16 пустых элементов, завершающих строку.

Длина и емкость StringBuilder

Класс Java StringBuilder, так же как и класс String, имеет метод length () , который возвращает длину последовательности символов в построителе.

Однако StringBuilder наследует метод capacity() от своего суперкласса AbstractStringBuilder , который возвращает количество выделенных символьных пространств. Возвращаемое значение всегда больше или равно длине (обычно больше) и автоматически расширяется при необходимости для добавления символов в конструктор строк.

// creates empty builder, capacity 16
StringBuilder sb = new StringBuilder();

// adds 5 character string at beginning
sb.append("Hello");

System.out.println("StringBuilder length = "+sb.length()); // prints 5
System.out.println("StringBuilder capacity = "+sb.capacity()); // prints 16

Существует несколько других методов, связанных с длиной и емкостью StringBuilder.

  1. void SetLength(int newLength) : Задает длину последовательности символов. Если новая длина меньше длины(), последние символы в последовательности символов усекаются. Если новая длина больше длины(), в конце последовательности символов добавляются нулевые символы.
  2. пропускная способность void(int minCapacity) : Гарантирует, что пропускная способность по крайней мере равна указанному минимуму.

Методы StringBuilder, такие как append () , insert() или SetLength () , могут увеличить длину последовательности символов в построителе строк, чтобы возвращаемое значение length() было больше текущей емкости(). В этом случае емкость автоматически увеличивается.

Пример Java StringBuilder

Давайте рассмотрим примеры различных методов класса StringBuilder.

  1. append() : Метод StringBuilder append() объединяет или присоединяет переданный строковый аргумент к существующей объявленной строке. Он прикрепляет его после объявленной строки.

    Вывод : Привет, мир

  2. insert() : Метод StringBuilder insert() вставляет переданный строковый аргумент в переданный строковый индекс.

  3. заменить(int startIndex, int endIndex, String str) : метод StringBuilder replace() заменяет существующую объявленную строку. Замена строки происходит от переданного начального индекса до конечного индекса.

  4. удалить(int startIndex, int endIndex) : метод StringBuilder delete() удаляет символ или наборы символов. Удаление происходит при прохождении от начального индекса до конечного индекса.

  5. reverse() : Метод reverse() класса StringBuilder изменяет существующую объявленную строку. Вызов метода reverse() для объекта StringBuilder без существующего объявленного значения вызывает Исключение NullPointerException .

  6. capacity() : Метод capacity() класса StringBuilder возвращает текущую емкость объекта StringBuilder. Емкость конструктора по умолчанию составляет 16. Если количество символов увеличивается по сравнению с его текущей емкостью, оно увеличивает емкость на (load_capacity*2)+2, например, при текущей емкости 16, оно становится.

  7. ensureCapacity() : Метод ensureCapacity() класса StringBuilder гарантирует, что заданная емкость является минимальной по сравнению с текущей емкостью. Если он больше текущей емкости, он увеличивает емкость на (load_capacity*2)+2, например, при текущей емкости 16 он становится (16*2)+2, что равно 34.

Это все для класса Java StringBuilder. Это очень полезный класс для работы со строками в java.

Ссылка: API Doc