Классы Java StringBuffer и StringBuilder
При изменении строк необходимо использовать классы StringBuffer и StringBuilder.
В отличие от класса String, объекты классов StringBuffer и StringBuilder можно изменять несколько раз без создания новых неиспользуемых объектов.

При использовании класса StringBuffer каждая операция выполняется над самим объектом StringBuffer, а не создаёт новый объект, поэтому, если вам нужно изменять строки, рекомендуется использовать StringBuffer.
Класс StringBuilder был представлен в Java 5. Самое большое отличие от StringBuffer заключается в том, что методы StringBuilder не являются потокобезопасными (к ним нельзя обращаться синхронно).
Поскольку StringBuilder имеет преимущество в скорости перед StringBuffer, в большинстве случаев рекомендуется использовать класс StringBuilder.
Пример
Результат компиляции и выполнения вышеприведённого примера следующий:
Example.. Example..! Example..Java! RunooJava!
Однако, когда приложению требуется потокобезопасность, необходимо использовать класс StringBuffer.
Код файла Test.java:
Результат компиляции и выполнения вышеприведённого примера следующий:
Example官网:www.example.com
Методы StringBuffer
Ниже перечислены основные методы, поддерживаемые классом StringBuffer:
| Нет. | Описание метода |
|---|---|
| 1 |
public StringBuffer append(String s) Добавляет указанную строку к этой последовательности символов. |
| 2 |
public StringBuffer reverse() Заменяет эту последовательность символов её обратной формой. |
| 3 |
public delete(int start, int end) Удаляет символы в подстроке этой последовательности. |
| 4 |
public insert(int offset, int i) будет intВставляет строковое представление аргумента в эту последовательность. |
| 5 |
insert(int offset, String str)
будет strВставляет строку аргумента в эту последовательность. |
| 6 |
replace(int start, int end, String str) Используя заданную Stringзаменяет символы в подстроке этой последовательности символами из заданной строки String. |
В следующем списке перечислены другие распространённые методы класса StringBuffer:
| Нет. | Описание метода |
|---|---|
| 1 |
int capacity() Возвращает текущую емкость. |
| 2 |
char charAt(int index) Возвращает значение типа char по указанному индексу в этой последовательности. charзначение. |
| 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) Возвращает индекс последнего вхождения подстроки в объекте String. |
| 9 |
int length() Возвращает длину (количество символов). |
| 10 |
void setCharAt(int index, char ch) Устанавливает символ по заданному индексу в ch。 |
| 11 |
void setLength(int newLength) Устанавливает длину последовательности символов. |
| 12 |
CharSequence subSequence(int start, int end) Возвращает новую последовательность символов, которая является подпоследовательностью данной последовательности. |
| 13 |
String substring(int start) Возвращает новый String, который содержит подпоследовательность символов, в настоящее время содержащуюся в этой последовательности символов. |
| 14 |
String substring(int start, int end) Возвращает новый String, которая содержит подпоследовательность символов, в настоящее время содержащуюся в этой последовательности. |
| 15 |
String toString() Возвращает строковое представление данных в этой последовательности. |
Дополнительный материал:
- Класс StringBuffer:https://www.example.com/manual/jdk11api/java.base/java/lang/StringBuffer.html
- Класс StringBuilder:https://www.example.com/manual/jdk11api/java.base/java/lang/StringBuilder.html