1

我试图让一个程序等待用户按下一个键,然后再继续多次。Return最好,这将是任何键,但如果用户只能按/Enter继续,我不会太在意。

import java.io.IOException;
import java.util.Scanner;

public class test {
    public static void main(String[] args) throws IOException {
        System.out.print("1");
        System.in.read();
        System.out.print("2");
        System.in.read();
        System.out.print("3");
    }
}

所需的输出是这样的:

1

第一次按下后:

1
2

第二次按下后:

1
2
3

实际上发生的事情是这样的:

1

第一次按下后:

1
23

如您所见,它会跳过所有后续指示以等待用户输入。

我也尝试过使用扫描仪,这很有效,但它也允许用户输入文本,这是我不希望发生的事情。

4

1 回答 1

4

You can use the skip() and available() methods to discard the data before the next read():

System.out.print("1");
System.in.read();
System.in.skip(System.in.available());
System.out.print("2");
System.in.read();
System.out.print("3");
于 2013-11-05T20:26:21.700 回答