Автор оригинала: 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.
void SetLength(int newLength)
: Задает длину последовательности символов. Если новая длина меньше длины(), последние символы в последовательности символов усекаются. Если новая длина больше длины(), в конце последовательности символов добавляются нулевые символы.пропускная способность void(int minCapacity)
: Гарантирует, что пропускная способность по крайней мере равна указанному минимуму.
Методы StringBuilder, такие как append ()
, insert()
или SetLength ()
, могут увеличить длину последовательности символов в построителе строк, чтобы возвращаемое значение length() было больше текущей емкости(). В этом случае емкость автоматически увеличивается.
Пример Java StringBuilder
Давайте рассмотрим примеры различных методов класса StringBuilder.
append()
: Метод StringBuilder append() объединяет или присоединяет переданный строковый аргумент к существующей объявленной строке. Он прикрепляет его после объявленной строки.Вывод : Привет, мир
insert()
: Метод StringBuilder insert() вставляет переданный строковый аргумент в переданный строковый индекс.заменить(int startIndex, int endIndex, String str)
: метод StringBuilder replace() заменяет существующую объявленную строку. Замена строки происходит от переданного начального индекса до конечного индекса.удалить(int startIndex, int endIndex)
: метод StringBuilder delete() удаляет символ или наборы символов. Удаление происходит при прохождении от начального индекса до конечного индекса.reverse()
: Метод reverse() класса StringBuilder изменяет существующую объявленную строку. Вызов метода reverse() для объекта StringBuilder без существующего объявленного значения вызывает Исключение NullPointerException .capacity()
: Метод capacity() класса StringBuilder возвращает текущую емкость объекта StringBuilder. Емкость конструктора по умолчанию составляет 16. Если количество символов увеличивается по сравнению с его текущей емкостью, оно увеличивает емкость на (load_capacity*2)+2, например, при текущей емкости 16, оно становится.ensureCapacity()
: Метод ensureCapacity() класса StringBuilder гарантирует, что заданная емкость является минимальной по сравнению с текущей емкостью. Если он больше текущей емкости, он увеличивает емкость на (load_capacity*2)+2, например, при текущей емкости 16 он становится (16*2)+2, что равно 34.
Это все для класса Java StringBuilder. Это очень полезный класс для работы со строками в java.
Ссылка: API Doc