java tutorial - Классы StringBuilder и StringBuffer, и методы - учебник java - java programming - учиться java - java basics - java for beginners
Классы StringBuffer и StringBuilder в Java используются, когда возникает необходимость сделать много изменений в строке символов.
- В отличие от строк, объекты типа StringBuffer и StringBuilder могут быть изменены снова и снова, оставляя после себя множество новых неиспользуемых объектов.
- В Java StringBuilder был введен начиная с Java 5. Основное различие между StringBuffer и StringBuilder является то, что методы StringBuilder не являются безопасными для потоков (несинхронизированные).
- Рекомендуется использовать StringBuilder всякий раз, когда это возможно, потому что он быстрее, чем StringBuffer в Java. Однако, если необходима безопасность потоков, наилучшим вариантом являются объекты StringBuffer.
Пример
Получим следующий результат:
Методы StringBuffer
Список методов, поддерживаемых классом StringBuffer:
№ | Описание |
1 | public StringBuffer append(String s) Обновляет значение объекта, который вызывает метод. Этот метод принимает boolean, char, int, long, Strings и т.д. |
2 | public StringBuffer reverse() Этот метод изменяет значение объекта StringBuffer, который вызывает метод. |
3 | public delete(int start, int end) Удаляет строку, начиная с начального индекса до конечного индекса. |
4 | public insert(int offset, int i) Этот метод вставляет строку s в позицию упомянутую по смещению. |
5 | replace(int start, int end, String str) Этот метод заменяет символы в подстроке данного StringBuffer символами в указанной строке. |
Список других методов (за исключением методов set), которые очень похожи на методы класса строк:
№ | Описание |
1 | int capacity() Возвращает текущую вместимость буфера String. |
2 | char charAt(int index) Возвращается указанный символ последовательности, в настоящее время представленный буфером строки, указанный индексом аргумент. |
3 | void ensureCapacity(int minimumCapacity) Гарантирует вместимость буфера, по крайней мере равным указанному минимуму. |
4 | void getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin) Символы копируются из этого буфера строки в символьный массив назначения dst. |
5 | int indexOf(String str) Возвращает индекс в данной строке первого вхождения указанной подстроки. |
6 | int indexOf(String str, int fromIndex) Возвращает индекс в данной строке первого вхождения указанной подстроки, начиная с указанного индекса. |
7 | int lastIndexOf(String str) Возвращает индекс в данной строке последнего вхождения указанной подстроки. |
8 | int lastIndexOf(String str, int fromIndex) Возвращает индекс в данной строке последнего вхождения указанной подстроки, начиная с указанного индекса. |
9 | int length() Возвращает длину строкового буфера (количество символов). |
10 | void setCharAt(int index, char ch) Символ с указанным индексом этого буфера строки имеет значение ch. |
11 | void setLength(int newLength) Устанавливает длину буфера строки (Stringbuffer). |
12 | CharSequence subSequence(int start, int end) Возвращает новую последовательность символов, которая является подпоследовательностью этой последовательности. |
13 | String substring(int start) Возвращает новую строку, которая содержит подпоследовательность символов в данный момент содержащихся в StringBuffer. Подстрока начинается с указанного индекса и продолжается до конца StringBuffer. |
14 | String substring(int start, int end) Возвращает новую строку, которая содержит подпоследовательность символов в данный момент содержащихся в этом StringBuffer. |
15 | String toString() Преобразование в строку, представляющую данные в этой строке буфера. |