Java: Кавычки

"Hello"
"Goodbye"
"G"
" "
""

Какие из этих пяти вариантов — строки? С первыми двумя все понятно: это точно строки, мы уже работали с подобными конструкциями. А что насчет остальных?

Любой одиночный символ в кавычках — это строка. Пустая строка "" — это тоже строка. То есть строкой мы считаем все, что находится внутри кавычек, даже если это пробел, один символ или вообще отсутствие символов.

Представьте, что вы хотите напечатать строчку dragon's mother. Апостроф перед буквой s — это такой же символ, как одинарная кавычка. Попробуем. Такой вариант программы отработает корректно:

System.out.println("Dragon's mother");

А что, если мы хотим создать такую строку:

Dragon's mother said "No"

В ней есть и одинарные, и двойные кавычки. Как быть в этой ситуации? Если просто попытаться вывести такую строку, то мы получим ошибку:

// Завершится с синтаксической ошибкой
System.out.println("Dragon's mother said "No"");

С точки зрения Java, здесь странная конструкция из двух трех компонентов:

  • Строки "Dragon's mother said "
  • Строки ""
  • Слова No между ними, которые не рассматривается как строка, потому что оно не в кавычках

Привычным способом эту строчку не вывести. Для вывода таких строк используют символ экранирования: \.

Если поставить \ перед кавычкой, это будет означать, что кавычку нужно рассматривать не как начало или конец строки, а как ее часть:

System.out.println("Dragon's mother said \"No\"");

Задание

Напишите программу, которая выведет на экран:

"Khal Drogo's favorite word is "athjahakar""

Программа должна вывести на экран эту фразу в точности. Обратите внимание на кавычки в начале и в конце фразы.

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

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