忽略 ASCII 艺术中的转义序列

问题描述 投票:0回答:5

对于我的命令行界面来说,一开始有一点 ASCII 艺术通常很好,但它们通常包含许多反斜杠。

例如:

System.out.println("  _____ _______       _____ _  __ ");
System.out.println(" / ____|__   __|/\   / ____| |/ / ");
System.out.println("| (___    | |  /  \ | |    | ' /  ");
System.out.println(" \___ \   | | / /\ \| |    |  <   ");
System.out.println(" ____) |  | |/ ____ \ |____| . \  ");
System.out.println("|_____/   |_/_/    \_\_____|_|\_\ ");

但是由于每个

\
都需要是
\\
,这在代码中通常看起来非常丑陋,并且很难找到/修复“字体”中的错误。有没有办法告诉 Java 不要使用转义序列?

java escaping backslash ascii-art
5个回答
3
投票

不,Java 没有 C# 的“逐字字符串文字”之类的东西。如果您想做 ASCII 艺术,请考虑将其放入文本文件中并从代码中加载。


2
投票

从文件中读取“图像”,该文件可以在您的 jar 库中:)


2
投票

讨厌埋葬这个帖子,但对于其他正在寻找这个帖子的人来说.. 尝试使用 unicode!

例如: \u0092 =“\”


1
投票

对不起,伙计。不存在这样的动物。


0
投票

也许有点晚了,但这适用于仍在寻找解决方案的人;

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 将位于字符串的开头和结尾

© www.soinside.com 2019 - 2024. All rights reserved.