对于我的命令行界面来说,一开始有一点 ASCII 艺术通常很好,但它们通常包含许多反斜杠。
例如:
System.out.println(" _____ _______ _____ _ __ ");
System.out.println(" / ____|__ __|/\ / ____| |/ / ");
System.out.println("| (___ | | / \ | | | ' / ");
System.out.println(" \___ \ | | / /\ \| | | < ");
System.out.println(" ____) | | |/ ____ \ |____| . \ ");
System.out.println("|_____/ |_/_/ \_\_____|_|\_\ ");
但是由于每个
\
都需要是\\
,这在代码中通常看起来非常丑陋,并且很难找到/修复“字体”中的错误。有没有办法告诉 Java 不要使用转义序列?
不,Java 没有 C# 的“逐字字符串文字”之类的东西。如果您想做 ASCII 艺术,请考虑将其放入文本文件中并从代码中加载。
从文件中读取“图像”,该文件可以在您的 jar 库中:)
讨厌埋葬这个帖子,但对于其他正在寻找这个帖子的人来说.. 尝试使用 unicode!
例如: \u0092 =“\”
对不起,伙计。不存在这样的动物。
也许有点晚了,但这适用于仍在寻找解决方案的人;
Pattern.quote()
可用于忽略转义序列。
System.out.println(Pattern.quote("| | ____ | | ______ "))
System.out.println(Pattern.quote("| | | | | / \ "))
System.out.println(Pattern.quote("|_____| |__ | | | | "))
System.out.println(Pattern.quote("| | | | | | | "))
System.out.println(Pattern.quote("| | |_____ |_____ |_____ \______/ "))
//I apologize for the rushed textblock
需要注意的一件事是转义序列 \Q 和 \E 将位于字符串的开头和结尾