这里的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.");
}
}
}
答案 0 :(得分:0)
好像你应该首先读取单行输入,然后创建扫描器以扫描该单行。
首先尝试使用BufferedReader和InputStreamReader来读取该行:
BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
String str = in.readLine();
然后创建Scanner
,也许将从读取字符串创建的StringBufferInputStream
传递到其构造函数中。