Какие альтернативные методы формирования строки в Java ты знаешь, помимо конкатенации?

«Какие альтернативные методы формирования строки в Java ты знаешь, помимо конкатенации?» — вопрос из категории Java, который задают на 24% собеседований AQA / Automation. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

В Java, помимо конкатенации с помощью оператора +, есть несколько эффективных и удобных способов формирования строк:

  1. StringBuilder (или StringBuffer для многопоточности): Оптимальный выбор при множественных операциях со строками в цикле, так как избегает создания множества промежуточных объектов String.

    StringBuilder sb = new StringBuilder();
    sb.append("Hello, ").append(name).append(". You are ").append(age).append(" years old.");
    String result = sb.toString();
  2. String.format(): Позволяет создавать строки по шаблону с использованием спецификаторов формата.

    String result = String.format("Hello, %s. You are %d years old.", name, age);
  3. MessageFormat: Более мощный класс для форматирования строк с учетом локали, подстановками по индексам.

    String pattern = "Hello, {0}. You are {1} years old.";
    String result = MessageFormat.format(pattern, name, age);
  4. Метод String.join(): Удобен для объединения коллекции строк с заданным разделителем.

    String[] words = {"Hello", "World"};
    String result = String.join(" ", words); // "Hello World"
  5. Текстовые блоки (Java 15+): Для удобного написания многострочных строковых литералов.

    String json = """
                  {
                    "name": "%s",
                    "age": %d
                  }
                  """.formatted(name, age); // .formatted() доступен с Java 15

Рекомендация: Для простой конкатенации нескольких строк + читаем. В циклах или при интенсивной модификации всегда используйте StringBuilder. Для сложных шаблонов или интернационализации — MessageFormat или String.format().