我是编码(和Stackoverflow)的新手,我正在尝试选择自己的冒险类游戏。问题是,当我运行代码时,它只是一次显示所有打印语句,从而给我留下了巨大的故事文本墙。无论如何,我可以让用户按下一个键来激活下一部分文字吗?
我目前正在使用扫描仪(console.nextInt())来输入用户的决定。我想对文本执行相同的操作,除了输入数字外,用户要做的就是按Enter键显示文本的下一部分。
答案 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
我认为您真正想做的是从文件中读取每个这些块。您可以用空行将行块分开,然后在读取文件时,根据读取空行将文本分成几部分。