0Pricing
Java Academy · Урок

Создание строк с помощью 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 — локальная установка не требуется.

Все уроки этого курса

  1. Почему строки неизменяемы
  2. Создание строк с помощью StringBuilder
  3. Методы StringBuilder
  4. StringBuilder и StringBuffer
← Назад к Java Academy