提问者:小点点

格式化文本输出Java SE


我正在尝试用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.");

        }
    }





}

共2个答案

匿名用户

控制台会换行您的文本。在控制台设置中设置海格列号

匿名用户

问题是java把你的文本当作单行,cmd换行,所以变得不可读。若要换行,请使用换行符< code>\n。