用户按下按钮或输入后,是否可以显示我的打印报表?

时间:2019-04-01 07:02:55

标签: java

我是编码(和Stackoverflow)的新手,我正在尝试选择自己的冒险类游戏。问题是,当我运行代码时,它只是一次显示所有打印语句,从而给我留下了巨大的故事文本墙。无论如何,我可以让用户按下一个键来激活下一部分文字吗?

我目前正在使用扫描仪(console.nextInt())来输入用户的决定。我想对文本执行相同的操作,除了输入数字外,用户要做的就是按Enter键显示文本的下一部分。

3 个答案:

答案 0 :(得分:1)

请改用扫描仪next方法(假设您的扫描仪正在听System.in)。这将读取第一个单词(并阻塞您的程序,直到有输入为止),但这也可以是一个空字符串。您的用户只需按Enter即可,无需输入任何内容,程序将继续运行。

答案 1 :(得分:0)

如果只要按回车键即可打印,则可以按原样等待输入,但是请确保打印语句在输入行之后。

要更进一步,您可以将打印语句放入某种形式的数据结构中(即使是基本数组也可以),然后使用for循环进行循环。您只需将要获取输入的行放在for循环的顶部,然后将print语句放置在此,然后使用循环的当前索引选择要显示的语句。

这都是考虑到您每次都打印相同的语句。否则,您将需要更复杂的数据结构或其他解决方案。鉴于问题描述,这是我现在可以为您提供的最佳答案。

答案 2 :(得分:0)

您可以执行以下操作:

public static void main(String[] args) {

    List<String> story = new ArrayList<>();
    story.add("This is the first part of the story. Blah blah\n" +
            "blah blah blah blah\n" +
            "blah blah blah blah\n");
    story.add("This is the second part of the story. Blah blah\n" +
            "blah blah blah blah\n" +
            "blah blah blah blah\n");
    story.add("This is more of the story. Blah blah\n" +
            "blah blah blah blah\n" +
            "blah blah blah blah\n");
    story.add("This is yet more of the story. Blah blah\n" +
            "blah blah blah blah\n" +
            "blah blah blah blah\n");

    Scanner scanner = new Scanner(System.in);

    while (story.size() != 0) {
        System.out.println(story.remove(0));
        scanner.nextLine();
    }
};

结果:

This is the first part of the story. Blah blah
blah blah blah blah
blah blah blah blah

<user hits 'Return' here>
This is the second part of the story. Blah blah
blah blah blah blah
blah blah blah blah

<user hits 'Return' here>
This is more of the story. Blah blah
blah blah blah blah
blah blah blah blah

<user hits 'Return' here>
This is yet more of the story. Blah blah
blah blah blah blah
blah blah blah blah

我认为您真正想做的是从文件中读取每个这些块。您可以用空行将行块分开,然后在读取文件时,根据读取空行将文本分成几部分。