Как вывести изображение многострочного символа в консоль
Я разрабатываю текстовую игру и хочу сделать название чем-то запоминающимся. Я попытался использовать конвертер текста в ASCII, чтобы сделать красивый заголовок, а затем скопировать и вставить его в свой код для вывода, но это не сработало.
Вот что я пытался сделать:
System.out.println("
██████╗ ██╗ ██╗███╗ ██╗ ██████╗ ███████╗ ██████╗ ███╗ ██╗ ██████╗ ███████╗
██╔══██╗██║ ██║████╗ ██║██╔════╝ ██╔════╝██╔═══██╗████╗ ██║ ██╔═══██╗██╔════╝
██║ ██║██║ ██║██╔██╗ ██║██║ ███╗█████╗ ██║ ██║██╔██╗ ██║ ██║ ██║█████╗
██║ ██║██║ ██║██║╚██╗██║██║ ██║██╔══╝ ██║ ██║██║╚██╗██║ ██║ ██║██╔══╝
██████╔╝╚██████╔╝██║ ╚████║╚██████╔╝███████╗╚██████╔╝██║ ╚████║ ╚██████╔╝██║
╚═════╝ ╚═════╝ ╚═╝ ╚═══╝ ╚═════╝ ╚══════╝ ╚═════╝ ╚═╝ ╚═══╝ ╚═════╝ ╚═╝
████████╗██╗ ██╗███████╗ ███████╗ ██████╗ ██████╗ ██████╗ ██████╗ ████████╗████████╗███████╗███╗ ██╗
╚══██╔══╝██║ ██║██╔════╝ ██╔════╝██╔═══██╗██╔══██╗██╔════╝ ██╔═══██╗╚══██╔══╝╚══██╔══╝██╔════╝████╗ ██║
██║ ███████║█████╗ █████╗ ██║ ██║██████╔╝██║ ███╗██║ ██║ ██║ ██║ █████╗ ██╔██╗ ██║
██║ ██╔══██║██╔══╝ ██╔══╝ ██║ ██║██╔══██╗██║ ██║██║ ██║ ██║ ██║ ██╔══╝ ██║╚██╗██║
██║ ██║ ██║███████╗ ██║ ╚██████╔╝██║ ██║╚██████╔╝╚██████╔╝ ██║ ██║ ███████╗██║ ╚████║
╚═╝ ╚═╝ ╚═╝╚══════╝ ╚═╝ ╚═════╝ ╚═╝ ╚═╝ ╚═════╝ ╚═════╝ ╚═╝ ╚═╝ ╚══════╝╚═╝ ╚═══╝");
Но, похоже, это не сработало. Я знаю, что это работает в JavaScript, но мне было интересно, будет ли это работать и в Java.
1 ответ
Строковые литералы
Строковый литерал — это строка, состоящая из нуля или более символов, заключенных в двойные кавычки.
"myText"
.
В Java невозможно создать многострочный строковый литерал, как вы пытались это сделать. Согласно спецификации языка, это ошибка времени компиляции, завершение строки присутствует в боковой части строки.
String invalidLiteral = "line1
line2
..."; // will cause a compilation error
Чтобы компилировать такой строковый литерал, конец строки можно заменить символом новой строки.
String validString = "line1\nline2\nline3";
Результирующая строка может стать очень длинной, чтобы сделать ее читаемой, вы можете разбить строку на куски, объединенные знаком плюс.
+
, добавив символ новой строки
\n
к каждому куску.
String validConcatinatedString = "line1\n" +
"line2\n" +
"line3";
Хотя это будет работать, это может быть утомительно.
Текстовые блоки
С Java 15 вы можете создать многострочную строку, используя доступные текстовые блоки .
Чтобы создать текстовый блок, нужно заключить целевой многострочный текст в тройные двойные кавычки.
String myASCIIArt = """ // no text after the opening delimiter
Your amazing
ASCII art
here""";
Обратите внимание , что открывающий разделитель
"""
сразу же должно следовать окончание строки, а фактическое тело текстового блока всегда начинается со следующей строки.