我正在尝试从Java中的 System.out.println 打印一些ASCII艺术品。当我这样做时,虽然源代码中的所有间距都消失了。打印出来的是一堆废话,没有任何意义。图1显示了源代码的外观以及ASCII艺术应该是什么样子。图2显示了程序运行时横幅的实际外观。
我的问题是如何按预期打印ASCII艺术品? 如何使用使横幅可读的格式打印ASCII艺术品?
例如,使用Python,我可以通过使用三引号轻松完成这项工作。 Java是否有类似的文本机制?
请参阅我的源代码如下:
package Boring;
import java.util.Scanner;
public class EnchantedBoringLevel {
public EnchantedBoringLevel () {
System.out.println("\n\n\n\n\n\n\n\n\n\n\n");
/* System.out.println("\n" +
"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 "
);
*/
System.out.println("***Enchanted Boring Forest***");
System.out.println("Welcome to another boring level of this video game!\n\n\n\n");
this.enchant();
}
public void enchant() {
System.out.println("You find yourself in a magical forest all alone.\nYou hear music in the distance.\n" +
"An elf appears and takes you to their tree house mansion.");
System.out.print("The elf prince offers you three choices 1) invisible ring, 2) galactic sunglasses, 3) a map of the enchanted forest. Which do you choose?");
Scanner enchanted_choice = new Scanner(System.in);
String choice;
choice = enchanted_choice.next();
switch(new Integer(choice)) {
case 1:
System.out.println("You chose the invisible ring");
new BoringInvisibleRing();
break;
case 2:
System.out.println("You chose the galactic sunglasses");
new BoringGalacticSunglasses();
break;
case 3:
System.out.println("You chose the map of the enchanted forest");
break;
default:
System.out.println("You shot yourself in the face.");
}
}
}
答案 0 :(得分:1)
控制台包装您的文字。在控制台设置中设置更高的列号
答案 1 :(得分:0)
问题是java将您的文本视为单行并且cmd将其包装,因此它变得不可读。要创建新行,请使用换行符\n
。