如何在控制台中输出多行字符图像
How to output a Multiline Character Image in the console
我正在开发一款 text-based 游戏,我想让标题更吸引人。我尝试使用文本到 ASCII 转换器制作一个 nice-looking 标题,然后将其复制并粘贴到我的代码中以输出它,但它没有用。
这是我尝试做的:
System.out.println("
██████╗ ██╗ ██╗███╗ ██╗ ██████╗ ███████╗ ██████╗ ███╗ ██╗ ██████╗ ███████╗
██╔══██╗██║ ██║████╗ ██║██╔════╝ ██╔════╝██╔═══██╗████╗ ██║ ██╔═══██╗██╔════╝
██║ ██║██║ ██║██╔██╗ ██║██║ ███╗█████╗ ██║ ██║██╔██╗ ██║ ██║ ██║█████╗
██║ ██║██║ ██║██║╚██╗██║██║ ██║██╔══╝ ██║ ██║██║╚██╗██║ ██║ ██║██╔══╝
██████╔╝╚██████╔╝██║ ╚████║╚██████╔╝███████╗╚██████╔╝██║ ╚████║ ╚██████╔╝██║
╚═════╝ ╚═════╝ ╚═╝ ╚═══╝ ╚═════╝ ╚══════╝ ╚═════╝ ╚═╝ ╚═══╝ ╚═════╝ ╚═╝
████████╗██╗ ██╗███████╗ ███████╗ ██████╗ ██████╗ ██████╗ ██████╗ ████████╗████████╗███████╗███╗ ██╗
╚══██╔══╝██║ ██║██╔════╝ ██╔════╝██╔═══██╗██╔══██╗██╔════╝ ██╔═══██╗╚══██╔══╝╚══██╔══╝██╔════╝████╗ ██║
██║ ███████║█████╗ █████╗ ██║ ██║██████╔╝██║ ███╗██║ ██║ ██║ ██║ █████╗ ██╔██╗ ██║
██║ ██╔══██║██╔══╝ ██╔══╝ ██║ ██║██╔══██╗██║ ██║██║ ██║ ██║ ██║ ██╔══╝ ██║╚██╗██║
██║ ██║ ██║███████╗ ██║ ╚██████╔╝██║ ██║╚██████╔╝╚██████╔╝ ██║ ██║ ███████╗██║ ╚████║
╚═╝ ╚═╝ ╚═╝╚══════╝ ╚═╝ ╚═════╝ ╚═╝ ╚═╝ ╚═════╝ ╚═════╝ ╚═╝ ╚═╝ ╚══════╝╚═╝ ╚═══╝");
但是好像没有用。我知道它适用于 JavaScript,但我想知道它是否也适用于 Java.
字符串文字
String literal - 是由用双引号括起来的零个或多个字符组成的字符串 "myText"
.
无法在 Java 中创建多行字符串文字,就像您已经尝试过的那样。根据语言规范,这是一个 compile-time 错误,行终止出现在横向字符串中。
String invalidLiteral = "line1
line2
..."; // will cause a compilation error
要编译这样的字符串文字,可以用换行符替换行终止符\n
。
String validString = "line1\nline2\nline3";
生成的字符串可能会变得很长,为了使其可读,您可以将字符串拆分为多个块,并用加号 +
连接,并在每个块后附加一个换行符 \n
.
String validConcatinatedString = "line1\n" +
"line2\n" +
"line3";
虽然它会起作用,但可能会很乏味。
文本块
使用 Java 15,您可以使用可用的 text blocks 创建多行字符串。
为了创建文本块,您需要将目标多行文本包含在三个 double-quote 个字符中 """
。
String myASCIIArt = """ // no text after the opening delimiter
Your amazing
ASCII art
here""";
注意开始分隔符"""
应该立即后跟[=42=]行终止符,文本块的实际主体总是从下一行开始。
我正在开发一款 text-based 游戏,我想让标题更吸引人。我尝试使用文本到 ASCII 转换器制作一个 nice-looking 标题,然后将其复制并粘贴到我的代码中以输出它,但它没有用。
这是我尝试做的:
System.out.println("
██████╗ ██╗ ██╗███╗ ██╗ ██████╗ ███████╗ ██████╗ ███╗ ██╗ ██████╗ ███████╗
██╔══██╗██║ ██║████╗ ██║██╔════╝ ██╔════╝██╔═══██╗████╗ ██║ ██╔═══██╗██╔════╝
██║ ██║██║ ██║██╔██╗ ██║██║ ███╗█████╗ ██║ ██║██╔██╗ ██║ ██║ ██║█████╗
██║ ██║██║ ██║██║╚██╗██║██║ ██║██╔══╝ ██║ ██║██║╚██╗██║ ██║ ██║██╔══╝
██████╔╝╚██████╔╝██║ ╚████║╚██████╔╝███████╗╚██████╔╝██║ ╚████║ ╚██████╔╝██║
╚═════╝ ╚═════╝ ╚═╝ ╚═══╝ ╚═════╝ ╚══════╝ ╚═════╝ ╚═╝ ╚═══╝ ╚═════╝ ╚═╝
████████╗██╗ ██╗███████╗ ███████╗ ██████╗ ██████╗ ██████╗ ██████╗ ████████╗████████╗███████╗███╗ ██╗
╚══██╔══╝██║ ██║██╔════╝ ██╔════╝██╔═══██╗██╔══██╗██╔════╝ ██╔═══██╗╚══██╔══╝╚══██╔══╝██╔════╝████╗ ██║
██║ ███████║█████╗ █████╗ ██║ ██║██████╔╝██║ ███╗██║ ██║ ██║ ██║ █████╗ ██╔██╗ ██║
██║ ██╔══██║██╔══╝ ██╔══╝ ██║ ██║██╔══██╗██║ ██║██║ ██║ ██║ ██║ ██╔══╝ ██║╚██╗██║
██║ ██║ ██║███████╗ ██║ ╚██████╔╝██║ ██║╚██████╔╝╚██████╔╝ ██║ ██║ ███████╗██║ ╚████║
╚═╝ ╚═╝ ╚═╝╚══════╝ ╚═╝ ╚═════╝ ╚═╝ ╚═╝ ╚═════╝ ╚═════╝ ╚═╝ ╚═╝ ╚══════╝╚═╝ ╚═══╝");
但是好像没有用。我知道它适用于 JavaScript,但我想知道它是否也适用于 Java.
字符串文字
String literal - 是由用双引号括起来的零个或多个字符组成的字符串 "myText"
.
无法在 Java 中创建多行字符串文字,就像您已经尝试过的那样。根据语言规范,这是一个 compile-time 错误,行终止出现在横向字符串中。
String invalidLiteral = "line1
line2
..."; // will cause a compilation error
要编译这样的字符串文字,可以用换行符替换行终止符\n
。
String validString = "line1\nline2\nline3";
生成的字符串可能会变得很长,为了使其可读,您可以将字符串拆分为多个块,并用加号 +
连接,并在每个块后附加一个换行符 \n
.
String validConcatinatedString = "line1\n" +
"line2\n" +
"line3";
虽然它会起作用,但可能会很乏味。
文本块
使用 Java 15,您可以使用可用的 text blocks 创建多行字符串。
为了创建文本块,您需要将目标多行文本包含在三个 double-quote 个字符中 """
。
String myASCIIArt = """ // no text after the opening delimiter
Your amazing
ASCII art
here""";
注意开始分隔符"""
应该立即后跟[=42=]行终止符,文本块的实际主体总是从下一行开始。