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 нужно писать через пробел. Но в наших начальных строках не было пробелов, а пробелы в самом коде вокруг символа + не имеют значения, потому что они не являются частью строк.
Из этой ситуации есть три выхода:
// Ставим пробел в левой части
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("King's " + " Landing"); // => King's Landing
System.out.println("King's " + " Landing"); // => King's LandingЗадание
Используя System.out.println(), выполните конкатенацию слов и выведите на экран фразу:
Winter came for the House of Frey.Каждое слово должно быть записано отдельно и взято в кавычки, например "Winter ". Не забудьте о пробелах после каждого слова.
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 нужно писать через пробел. Но в наших начальных строках не было пробелов, а пробелы в самом коде вокруг символа + не имеют значения, потому что они не являются частью строк.
Из этой ситуации есть три выхода:
// Ставим пробел в левой части
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("King's " + " Landing"); // => King's Landing
System.out.println("King's " + " Landing"); // => King's LandingЗадание
Используя System.out.println(), выполните конкатенацию слов и выведите на экран фразу:
Winter came for the House of Frey.Каждое слово должно быть записано отдельно и взято в кавычки, например "Winter ". Не забудьте о пробелах после каждого слова.
Ваше упражнение проверяется по этим тестам
import java.io.ByteArrayOutputStream;
import java.io.FileDescriptor;
import java.io.FileOutputStream;
import java.io.PrintStream;
import static org.assertj.core.api.Assertions.assertThat;
class Test {
public static void main(String[] args) {
final var expected = "Winter " + "came " + "for " + "the " + "House " + "of " + "Frey.";
ByteArrayOutputStream out = new ByteArrayOutputStream();
System.setOut(new PrintStream(out));
App.main(null);
final var actual = out.toString().trim();
System.setOut(new PrintStream(new FileOutputStream(FileDescriptor.out)));
System.out.println(actual);
assertThat(actual).isEqualTo(expected);
}
}Решение учителя откроется через:
20:00
