java.util.Scanner:一直等待其他输入
这里全是Java新手。正在开发我的第一个Java程序之一。请帮忙。 以下是我努力实现的目标: 我需要接受用户键盘输入的以空格分隔的整数,将它们复制到数组中并进行处理。已知:用户将只输入一行数据。我不知道有多少个数字,但一旦他们按回车键,就不会有了。由于用户输入可能包含单词和特殊字符,我需要用整洁的错误处理它们,并提示用户重试。当我运行我在下面写的东西时,我进入了某种无限循环,扫描仪一直在等待额外的输入。我怎么知道它已经结束了,不会有更多的输入 代码如下:java.util.Scanner:一直等待其他输入,java,java.util.scanner,Java,Java.util.scanner,这里全是Java新手。正在开发我的第一个Java程序之一。请帮忙。 以下是我努力实现的目标: 我需要接受用户键盘输入的以空格分隔的整数,将它们复制到数组中并进行处理。已知:用户将只输入一行数据。我不知道有多少个数字,但一旦他们按回车键,就不会有了。由于用户输入可能包含单词和特殊字符,我需要用整洁的错误处理它们,并提示用户重试。当我运行我在下面写的东西时,我进入了某种无限循环,扫描仪一直在等待额外的输入。我怎么知道它已经结束了,不会有更多的输入 代码如下: <!-- language-all
<!-- 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.");
}
}
}
公共静态无效输入(){
System.out.println(“输入由空格分隔的整数序列。完成后按Enter键”);
扫描仪输入=新扫描仪(System.in);
while(input.hasNext()){
if(input.hasNextInt(){
int i=input.nextInt();
系统输出打印LN(i);
}
否则{
System.out.println(“只能输入整数,请重试”);
}
}
}
似乎您应该先读取输入的单行,然后创建扫描仪来扫描该单行
尝试使用and键,首先读取该行:
BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
String str = in.readLine();
然后创建
扫描器
,可能会将从读取字符串创建的StringBufferInputStream
传递到其构造函数中。谢谢Rob。我以前从未使用过这些类,因此需要查看它们的工作原理。复制/粘贴代码会导致错误,因此需要进行尽职调查。感谢您的帮助救命啊。