如何在控制台中输出多行字符图像

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=]行终止符,文本块的实际主体总是从下一行开始。