格式化文本输出Java SE

时间:2018-03-23 16:56:11

标签: java

我正在尝试从Java中的 System.out.println 打印一些ASCII艺术品。当我这样做时,虽然源代码中的所有间距都消失了。打印出来的是一堆废话,没有任何意义。图1显示了源代码的外观以及ASCII艺术应该是什么样子。图2显示了程序运行时横幅的实际外观。

我的问题是如何按预期打印ASCII艺术品? 如何使用使横幅可读的格式打印ASCII艺术品?

例如,使用Python,我可以通过使用三引号轻松完成这项工作。 Java是否有类似的文本机制?

Figure 1: How the ASCII Art should look, how it is in the source code. 图1 :ASCII艺术应该是什么样子

enter image description here 图2 :程序运行时ASCII艺术的样子

请参阅我的源代码如下:

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 个答案:

答案 0 :(得分:1)

控制台包装您的文字。在控制台设置中设置更高的列号

答案 1 :(得分:0)

问题是java将您的文本视为单行并且cmd将其包装,因此它变得不可读。要创建新行,请使用换行符\n