Создание строк с помощью StringBuilder
Эффективное объединение
«Создание строк с помощью StringBuilder» — бесплатный урок Java Academy на CoddyKit. Это урок 2 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Java Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Java Academy содержит 4 уроков всего.
Изменяемый построитель строк
StringBuilder — это изменяемая последовательность символов. В отличие от String, её содержимое можно изменять на месте, что делает построение текста эффективным.
Создание StringBuilder
Создайте пустой построитель с помощью new StringBuilder() или передайте исходный текст, чтобы сразу начать с готового содержимого.
public class Main {
public static void main(String[] args) {
StringBuilder sb = new StringBuilder();
StringBuilder named = new StringBuilder("Hello");
System.out.println("empty length: " + sb.length());
System.out.println("named: " + named);
}
}Добавление текста
Метод append добавляет содержимое в конец. Он принимает строки, числа, символы, логические значения и другие типы.
public class Main {
public static void main(String[] args) {
StringBuilder sb = new StringBuilder();
sb.append("Count: ");
sb.append(5);
sb.append(' ');
sb.append(true);
System.out.println(sb);
}
}Цепочка вызовов методов
Метод append возвращает тот же построитель, поэтому вызовы можно удобно объединять в одну цепочку выражений.
public class Main {
public static void main(String[] args) {
StringBuilder sb = new StringBuilder();
sb.append("a").append("b").append("c").append(123);
System.out.println(sb);
}
}Построение в цикле
Это основной сценарий использования. Добавляйте содержимое внутри цикла, не создавая новый объект при каждой итерации, а затем один раз преобразуйте результат в конце.
public class Main {
public static void main(String[] args) {
StringBuilder sb = new StringBuilder();
for (int i = 1; i <= 10; i++) {
sb.append(i).append(' ');
}
System.out.println(sb.toString().trim());
}
}Преобразование в строку
Вызовите toString(), чтобы получить обычный неизменяемый объект String из построителя после завершения его изменения.
public class Main {
public static void main(String[] args) {
StringBuilder sb = new StringBuilder("result");
String finalText = sb.toString();
System.out.println(finalText.toUpperCase());
}
}Объединение с разделителем
Вы можете создавать списки, разделённые запятыми, добавляя разделитель между элементами и аккуратно обрабатывая последний элемент.
public class Main {
public static void main(String[] args) {
String[] names = {"Ann", "Ben", "Cara"};
StringBuilder sb = new StringBuilder();
for (int i = 0; i < names.length; i++) {
sb.append(names[i]);
if (i < names.length - 1) {
sb.append(", ");
}
}
System.out.println(sb);
}
}Чтение длины
length() сообщает, сколько символов сейчас хранится в построителе. Это значение обновляется при каждом добавлении.
public class Main {
public static void main(String[] args) {
StringBuilder sb = new StringBuilder();
sb.append("12345");
System.out.println("Length: " + sb.length());
}
}Доступ к символам
Используйте charAt(index), чтобы прочитать отдельный символ по его позиции, как и в объекте String.
public class Main {
public static void main(String[] args) {
StringBuilder sb = new StringBuilder("Coddy");
System.out.println("First: " + sb.charAt(0));
System.out.println("Last: " + sb.charAt(sb.length() - 1));
}
}Ёмкость и длина
Построитель хранит внутренний буфер (ёмкость), который увеличивается автоматически. Если известен окончательный размер, можно передать начальную ёмкость, чтобы уменьшить число перераспределений.
public class Main {
public static void main(String[] args) {
StringBuilder sb = new StringBuilder(100);
sb.append("short");
System.out.println("Length: " + sb.length());
System.out.println("Capacity at least: " + (sb.capacity() >= 100));
}
}Практический пример построителя
Объединим всё изученное: эффективно создадим небольшую строку отчёта с помощью цепочки вызовов append и цикла.
public class Main {
public static void main(String[] args) {
int[] sales = {100, 250, 75};
StringBuilder report = new StringBuilder("Sales Report\n");
int total = 0;
for (int i = 0; i < sales.length; i++) {
report.append("Day ").append(i + 1).append(": ").append(sales[i]).append('\n');
total += sales[i];
}
report.append("Total: ").append(total);
System.out.println(report);
}
}Быстрая проверка
Почему StringBuilder эффективнее, чем многократное объединение с помощью + в цикле?
Повторение
Вы научились создавать строки с помощью StringBuilder:
- Это изменяемая последовательность символов
appendдобавляет содержимое и поддерживает цепочку вызовов- Идеально подходит для построения текста в циклах
- Вызовите
toString(), чтобы получить итоговый объектString - Начальная ёмкость позволяет избежать перераспределения буфера
Часто задаваемые вопросы
Урок «Создание строк с помощью StringBuilder» бесплатный?
Да — полный текст урока «Создание строк с помощью StringBuilder» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Java Academy, подпишись на CoddyKit PRO. Курс Java Academy содержит 4 уроков всего.
Чему я научусь в уроке «Создание строк с помощью StringBuilder»?
Эффективное объединение Ты практикуешь Java Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать Java Academy?
Предыдущий опыт не требуется. Java Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 2 из 4.
Сколько времени занимает урок «Создание строк с помощью StringBuilder»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке Java Academy?
Да. Каждый урок Java Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- Почему строки неизменяемы
- Создание строк с помощью StringBuilder
- Методы StringBuilder
- StringBuilder и StringBuffer