Java中System.out.println打印ASCII艺术格式丢失问题求助
嘿,我明白你遇到的问题了——ASCII艺术的空格和格式全乱了,这确实让人头疼!Java不像Python那样有原生的三引号多行字符串,但我们有几种完美的解决办法,让你的ASCII艺术能完美输出。
解决Java打印ASCII艺术格式问题的方法
1. 手动添加换行符并保留空格
如果你还在使用Java 15之前的版本,最直接的方式就是给每一行ASCII文本末尾加上\n换行符,同时确保每行的空格在字符串里完整保留。比如把你的ASCII拆成多行字符串拼接:
System.out.println("EEEE h t d BBBB FFFF t \n" + "E h t d B B ii F t \n" + "EEE nnn ccc hhh aa nnn ttt eee ddd BBBB ooo rrr nnn ggg FFF ooo rrr eee ss ttt \n" + "E n n c h h a a n n t e e d d B B o o r ii n n g g F o o r e e s t \n" + "EEEE n n ccc h h aaa n n tt ee ddd BBBB ooo r ii n n ggg F ooo r ee ss tt \n" + " g \n" + " ggg ");
或者更清晰的做法,用多个System.out.println分别输出每一行——这样方法会自动帮你换行,每行的空格也能完整保留:
System.out.println("EEEE h t d BBBB FFFF t "); System.out.println("E h t d B B ii F t "); System.out.println("EEE nnn ccc hhh aa nnn ttt eee ddd BBBB ooo rrr nnn ggg FFF ooo rrr eee ss ttt "); System.out.println("E n n c h h a a n n t e e d d B B o o r ii n n g g F o o r e e s t "); System.out.println("EEEE n n ccc h h aaa n n tt ee ddd BBBB ooo r ii n n ggg F ooo r ee ss tt "); System.out.println(" g "); System.out.println(" ggg ");
2. Java 15+的文本块——完美替代Python三引号
从Java 15开始,官方引入了文本块(Text Blocks),这完全就是你想要的“Python三引号”机制!用三个双引号"""包裹多行文本,它会自动保留换行、空格和缩进,简直是为ASCII艺术量身定做的:
System.out.println(""" EEEE h t d BBBB FFFF t E h t d B B ii F t EEE nnn ccc hhh aa nnn ttt eee ddd BBBB ooo rrr nnn ggg FFF ooo rrr eee ss ttt E n n c h h a a n n t e e d d B B o o r ii n n g g F o o r e e s t EEEE n n ccc h h aaa n n tt ee ddd BBBB ooo r ii n n ggg F ooo r ee ss tt g ggg """);
小贴士:文本块会自动处理开头的缩进,你可以调整块内文本的对齐方式,确保ASCII艺术的格式完全符合预期。
为啥你原来的代码会乱?
你注释里的代码把所有行的字符串直接用+拼接,但没加换行符\n,导致所有内容都挤在了同一行,自然就失去了ASCII的排版格式。加上换行符或者用上面的方法,就能轻松恢复你想要的效果啦!
内容的提问来源于stack exchange,提问作者user3808269
相关产品推荐
相关产品推荐

