Какие проблемы возникают при конкатенации строк

«Какие проблемы возникают при конкатенации строк» — вопрос из категории Java, который задают на 23% собеседований Android Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Конкатенация строк в Java/Android может вызывать несколько проблем:

  1. Производительность: Каждая операция + создает новый объект String, что приводит к лишним аллокациям памяти. В циклах это особенно критично.
// Плохо - создается много промежуточных объектов
String result = "";
for (int i = 0; i < 100; i++) {
    result += i; 
}

// Лучше использовать StringBuilder
StringBuilder sb = new StringBuilder();
for (int i = 0; i < 100; i++) {
    sb.append(i);
}
String result = sb.toString();
  1. NullPointerException: Если один из операндов null, будет исключение.

  2. Читаемость: Длинные цепочки конкатенаций ухудшают читаемость кода.

Для сложных сценариев лучше использовать:

  • StringBuilder для циклов
  • String.format() для форматирования
  • Шаблонизаторы вроде MessageFormat