Java: Конкатенация

Программы постоянно оперируют строками. Все, что мы видим на сайтах или в мобильных приложениях, так или иначе представлено в виде текста. Этот текст чаще всего динамический — собранный из разных частей, которые соединяют вместе. Например, мы объединяем имя и фамилию, добавляем единицу измерения или составляем сообщение из шаблона. Операция соединения строк в программировании называется конкатенацией и выглядит так:

// Оператор такой же, как и при сложении чисел,
// но здесь он имеет другой смысл (семантику)
System.out.println("Dragon" + "stone");
// => Dragonstone

Склеивание строк всегда происходит в том же порядке, в котором записаны операнды. Левый операнд становится левой частью результата, а правый — правой. Конкатенировать можно сколько угодно частей подряд. Вот еще несколько примеров:

System.out.println("Kings" + "wood"); // => Kingswood
// Обратный порядок слов
System.out.println("road" + "Kings"); // => roadKings
// Конкатенировать можно абсолютно любые строки
System.out.println("King's" + "Landing"); // => King'sLanding

В последнем примере название города получилось с ошибкой: King's Landing нужно писать через пробел. Но в наших исходных строках пробелов не было, а пробелы в самом коде вокруг символа + ни на что не влияют, потому что они не входят в строки.

Пробел тоже считается символом

При объединении Java не вставляет пробелы автоматически. Если между частями нужен пробел, его добавляют вручную. Из ситуации с King's Landing есть три выхода:

// Ставим пробел в левой части
System.out.println("King's " + "Landing"); // => King's Landing
// Ставим пробел в правой части
System.out.println("King's" + " Landing"); // => King's Landing
// Добавляем пробел отдельно
System.out.println("King's" + " " + "Landing"); // => King's Landing

Результат во всех трех случаях одинаковый. Пробел — такой же символ, как и остальные, и чем больше пробелов в строках, тем шире отступ между словами.

Конкатенация с числом

Оператор + умеет склеивать строку не только со строкой, но и с числом. В этом случае число превращается в текст и приклеивается к строке:

System.out.println("Сумма: " + 5);
// => Сумма: 5

Слева строка, справа число 5. Java выводит их вместе, как единый текст.

Управляющие последовательности

В строках встречаются управляющие последовательности, например \n для перевода строки. При конкатенации они работают так же, как и любые другие символы:

System.out.println("Hello," + "\n" + "World!");
// =>
// Hello,
// World!

Заключение

Конкатенация — это объединение строк через +. Склеивание идет строго слева направо, в порядке операндов. Пробелы не добавляются автоматически, поэтому их включают в строки вручную.

Задание

Используя System.out.println(), выполните конкатенацию слов и выведите на экран фразу:

Winter came for the House of Frey.

Каждое слово должно быть записано отдельно и взято в кавычки, например "Winter ". Не забудьте о пробелах после каждого слова.

Полезное

  • Если в редакторе есть запись // BEGIN и // END, то код нужно писать между этими строчками.

Команда проекта находится в телеграм-сообществе. Там можно задать любой вопрос и повлиять на проект

Нашли ошибку? Есть что добавить? Пулреквесты приветствуются