Menu
Coddy logo textTech

Основы StringBuilder

Часть раздела Логика и управление потоком путешествия по Java на Coddy — урок 44 из 59.

StringBuilder используется для создания изменяемых (модифицируемых) строк. Он более эффективен, чем обычная конкатенация строк String, когда требуется модифицировать строки несколько раз.

Создайте StringBuilder с начальным текстом:

StringBuilder sb = new StringBuilder("Hello");

Добавьте больше текста с помощью append():

sb.append(" World");

После выполнения приведенного выше кода sb содержит:

Hello World

Давайте используем insert() для добавления текста в определённую позицию:

StringBuilder sb = new StringBuilder("Java");
sb.append(" is");      // adds at end
sb.insert(0, "Hey ");  // adds at position 0 (start)

После выполнения приведенного выше кода, sb содержит:

Hey Java is

Преобразование StringBuilder в String:
Когда вам нужно вернуть или сохранить результат как String, используйте toString():

StringBuilder sb = new StringBuilder("Hello");
sb.append(" World");

String result = sb.toString();  // Converts to String
System.out.println(result);     // Prints: Hello World

Почему использовать toString()? Методы, возвращающие тип String, не могут возвращать StringBuilder напрямую — сначала нужно преобразовать его с помощью toString().

challenge icon

Задание

Легко

Создайте метод с именем buildPhrase, который принимает три аргумента:

  1. Строка (start) для начала фразы
  2. Строка (middle) для средней части
  3. Строка (end) для окончания

Метод должен:

  1. Создать StringBuilder со строкой start
  2. Добавить пробел и строку middle
  3. Добавить пробел и строку end
  4. Добавить восклицательный знак в конец
  5. Вернуть итоговую строку

Возвращаемые значения должны быть:

  • Если любой входной параметр равен null: вернуть "Invalid input"
  • При успешной операции: вернуть построенную фразу

Шпаргалка

StringBuilder используется для создания изменяемых строк, более эффективен, чем конкатенация строк String при множественных модификациях.

Создайте StringBuilder с начальным текстом:

StringBuilder sb = new StringBuilder("Hello");

Добавьте текст в конец с помощью append():

sb.append(" World");

Вставьте текст в конкретную позицию с помощью insert():

sb.insert(0, "Hey ");  // добавляет в позицию 0 (начало)

Преобразуйте StringBuilder в String:

String result = sb.toString();

Попробуйте сами

import java.util.Scanner;

public class Main {
    public static String buildPhrase(String start, String middle, String end) {
        // Напишите свой код здесь
    }
    
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        String start = scanner.nextLine();
        String middle = scanner.nextLine();
        String end = scanner.nextLine();
        
        if (start.equals("null")) start = null;
        if (middle.equals("null")) middle = null;
        if (end.equals("null")) end = null;
        
        System.out.println(buildPhrase(start, middle, end));
    }
}
quiz iconПроверьте себя

В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.

Все уроки раздела Логика и управление потоком