【问题标题】:Java-Hangman ASCII Art Strange OutputJava-Hangman ASCII 艺术奇怪输出
【发布时间】:2017-11-02 02:42:40
【问题描述】:

我开始用 java 制作一个刽子手游戏。
我希望能够根据用户是否输入错误来调用我的方法状态。
我正在测试所有状态以确保它们正确显示。
状态 1 和 2 显示正确,但 3-5 不正确。

代码如下:

public void state_1() {
        System.out.println(" \n"
                + " ------\n"
                + "|      |\n"
                + "|      O\n"
                + "|\n"
                + "|\n"
                + "|\n"
                + "|\n"
                + "|\n"
                + "|\n"
                + "|");
        System.out.println("\n"
                + "");
    }
    public void state_2() {
        System.out.println(" \n"
                + " ------\n"
                + "|      |\n"
                + "|      O\n"
                + "|      |\n"
                + "|      |\n"
                + "|      |\n"
                + "|\n"
                + "|\n"
                + "|\n"
                + "|");
        System.out.println("\n"
                + "");
    }
    public void state_3() {
        System.out.println(" \n"
                + " ------\n"
                + "|      |\n"
                + "|      O\n"
                + "|      |\n"
                + "|      |\n"
                + "|      |\n"
                + "|      |\n"
                + "|     / \\n"
                + "|    /   \\n"
                + "|   /     \\");
        System.out.println("\n"
                + "");
    }
    public void state_4() {
        System.out.println(" \n"
                + " ------\n"
                + "|      |\n"
                + "|      O  /\n"
                + "|      | /\n"
                + "|      |/\n"
                + "|      |\n"
                + "|      |\n"
                + "|     / \\n"
                + "|    /   \\n"
                + "|   /     \\");
        System.out.println("\n"
                + "");
    }
    public void state_5() {
        System.out.println(" \n"
                + " ------\n"
                + "|      |\n"
                + "|   \\  O  /\n"
                + "|    \\ | /\n"
                + "|     \\|/\n"
                + "|      |\n"
                + "|      |\n"
                + "|     / \\n"
                + "|    /   \\n"
                + "|   /     \\");
        System.out.println("\n"
                + "");
    }

这是奇怪的输出:

 ------
|      |
|      O
|
|
|
|
|
|
|



 ------
|      |
|      O
|      |
|      |
|      |
|
|
|
|



 ------
|      |
|      O
|      |
|      |
|      |
|      |
|     / \n|    /   \n|   /     \



 ------
|      |
|      O  /
|      | /
|      |/
|      |
|      |
|     / \n|    /   \n|   /     \



 ------
|      |
|   \  O  /
|    \ | /
|     \|/
|      |
|      |
|     / \n|    /   \n|   /     \

我确信有一些简单的事情要做,但我只是不确定,因为我知道在创建新行“\n”之前它的 \ 部分存在问题。
如何解决这个问题我需要您的帮助。

【问题讨论】:

    标签: java text ascii-art


    【解决方案1】:

    "\\n" 在打印输出中生成文字 \n

    如果您想要一个\ 和一个换行符,即"\\\n",您可以在其中转义斜线,然后输入换行符。

    您也可以单独println() 每一行。不过,仍然需要转义反斜杠

        System.out.println();
        System.out.println(" ------ ");
        System.out.println("|      |");
        System.out.println("|      O");
        ...
        System.out.println("|    /   \\");
        System.out.println("|   /     \\");
    

    【讨论】:

    • 我知道你每次都可以只做 system.out.println,我只是想也许有更好的方法来做这件事,就像我做的那样。当我用 \\\n 尝试它时,它只会给我无效的序列。这是我试图避免的,我把 \\ 放在腿上来解决这个问题。所以我只能通过每次都做 system.out.println 来解决它?
    • 这不是解决办法。这是删除字符串末尾的\n 并保证换行符所在的位置。
    • 当我在 | 之前放一个 \刽子手的身体部分,是我得到无效序列的地方。但是,我将您的评论误解为修复。那么有没有按照我的方式来做呢?还是只有这样?
    • 这是一种解决方法,而不是修复方法。你看过上面的链接吗?此外,反斜杠本身就是一个无效的序列。您总是需要两个带有任何反斜杠的字符。 stackoverflow.com/questions/1367322/…
    • 好的,那条评论作为它的 3 个反斜杠加上 n 字符很有帮助。我认为换行符的意思是 n 所以它总共有 2 个反斜杠。换行符的意思是 \n。不管怎样,我得到了最后一个工作,所以我现在可以让其他人工作,只需要做到其他需要这样做的阶段。感谢您的帮助。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-06-27
    • 1970-01-01
    • 2016-10-12
    • 2010-12-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多