Класс StringBuffer
Класс StringBuffer представляет собой
изменяемую последовательность символов.
В отличие от класса String, объекты
которого неизменяемы, содержимое StringBuffer
можно изменять после создания: добавлять,
удалять, вставлять и заменять символы.
Класс является потокобезопасным (synchronized),
поэтому его методы можно безопасно вызывать
из нескольких потоков одновременно.
Для создания объекта используется конструктор,
который может принимать пустое значение,
начальную строку или начальную емкость буфера.
Основные методы: append добавляет данные
в конец буфера, insert вставляет данные
по указанной позиции, delete удаляет
символы в заданном диапазоне, replace
заменяет часть содержимого, reverse
переворачивает последовательность,
toString возвращает обычную строку.
Синтаксис
StringBuffer sb = new StringBuffer();
StringBuffer sb = new StringBuffer("abcde");
StringBuffer sb = new StringBuffer(50);
Пример
Давайте создадим буфер и добавим в него
несколько фрагментов с помощью метода
append:
public class Main
{
public static void main(String[] args)
{
StringBuffer sb = new StringBuffer("abc");
sb.append("de");
sb.append("12345");
System.out.println(sb.toString());
}
}
Результат выполнения кода:
"abcde12345"
Пример
Давайте вставим подстроку в середину буфера
с помощью метода insert:
public class Main
{
public static void main(String[] args)
{
StringBuffer sb = new StringBuffer("abcde");
sb.insert(2, "12345");
System.out.println(sb.toString());
}
}
Результат выполнения кода:
"ab12345cde"
Пример
Давайте удалим символы со 1 по 3
(конечный индекс не входит в удаляемый диапазон)
с помощью метода delete:
public class Main
{
public static void main(String[] args)
{
StringBuffer sb = new StringBuffer("abcde");
sb.delete(1, 4);
System.out.println(sb.toString());
}
}
Результат выполнения кода:
"ae"
Пример
Давайте заменим символы со 1 по 3
на новую строку с помощью метода replace:
public class Main
{
public static void main(String[] args)
{
StringBuffer sb = new StringBuffer("abcde");
sb.replace(1, 4, "12345");
System.out.println(sb.toString());
}
}
Результат выполнения кода:
"a12345e"
Пример
Давайте перевернем последовательность символов
с помощью метода reverse:
public class Main
{
public static void main(String[] args)
{
StringBuffer sb = new StringBuffer("abcde");
sb.reverse();
System.out.println(sb.toString());
}
}
Результат выполнения кода:
"edcba"