Sobes.tech
Назад к вопросам
Junior — Middle
51

Как объединить пятьсот строк в одну строку с помощью программирования?

Ответ от нейросети

sobes.tech AI

Что хотят услышать интервьюеры:

Нужно показать, что строки в цикле лучше не склеивать через +, потому что это создаёт много промежуточных объектов. Для объединения большого количества строк в Java обычно используют StringBuilder или готовые методы вроде String.join, если строки уже есть в коллекции. Для пятисот строк это стандартный и эффективный подход.

Определение:

Объединение строк — это формирование одной итоговой строки из набора отдельных строк. В Java для этого чаще всего используют StringBuilder, потому что он изменяемый и позволяет добавлять данные без постоянного создания новых объектов. Если строки нужно соединить с разделителем, удобно использовать String.join или Collectors.joining.

Пример использования:

import java.util.List;
import java.util.stream.Collectors;

public class Example {
    public static void main(String[] args) {
        List<String> lines = List.of(
            "Строка 1",
            "Строка 2",
            "Строка 3"
            // ... всего 500 строк
        );

        String result = lines.stream()
                             .collect(Collectors.joining(" "));

        System.out.println(result);
    }
}

Если строки приходят по одной в цикле, удобнее так:

public class Example {
    public static void main(String[] args) {
        StringBuilder sb = new StringBuilder();

        for (int i = 1; i <= 500; i++) {
            sb.append("Строка ").append(i);
            if (i < 500) {
                sb.append(" ");
            }
        }

        String result = sb.toString();
        System.out.println(result);
    }
}

Пояснение кода:

В первом примере есть список строк, и они объединяются через Collectors.joining(" "). Это удобно, когда данные уже собраны в List или другой коллекции. Метод joining склеивает все элементы в одну строку и вставляет пробел между ними.

Во втором примере используется StringBuilder. Сначала создаётся пустой буфер, затем в цикле к нему последовательно добавляются строки через append. В конце вызывается toString(), чтобы получить обычную String. Такой вариант особенно хорош, когда строки генерируются постепенно.

Ключевые моменты:

  • Для большого количества строк в Java лучше использовать StringBuilder, а не + в цикле.
  • Если строки уже лежат в коллекции, удобно применять String.join или Collectors.joining.
  • StringBuilder эффективен, потому что не создаёт новый объект строки на каждую операцию добавления.
  • Если нужен разделитель между строками, его лучше добавлять явно или через готовые методы объединения.
  • Для 500 строк разница в производительности между + и StringBuilder уже заметна на практике.