0

总Java新手在这里。在我的第一个 Java 程序中工作。请帮忙。这是我想要实现的目标:我需要接受空格分隔整数的用户键盘输入,将它们复制到数组中并处理它们。已知:用户将只输入一行数据。我不知道有多少个数字,但是一旦他们按 Enter 键,就不会再有了。由于用户输入可能包含单词和特殊字符,我需要用简洁的错误处理它们并提示用户重试。当我运行我在下面写的内容时,我进入了某种无限循环,其中 Scanner 一直在等待额外的输入。我如何告诉它已经结束并且不会再有任何输入?

这是代码:

<!-- language-all: java -->

public static void EnterInts () {

    System.out.println("Enter series of integers separated by whitespace. Press Enter key when finished.");
    Scanner input = new Scanner(System.in);
    while (input.hasNext()){
        if (input.hasNextInt(){
            int i = input.nextInt();
            System.out.println(i);
        }
        else {
            System.out.println("Only integers can be entered. Try again.");
        }
    }
}
4

1 回答 1

0

似乎您应该先阅读单行输入,然后创建扫描仪以扫描该单行。

尝试使用BufferedReaderInputStreamReader首先读取该行:

BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
String str = in.readLine();

然后创建Scanner,也许将StringBufferInputStream读取字符串中的 created 传递给它的构造函数。

于 2012-04-25T13:22:29.830 回答