java.util.NoSuchElementException
样本输入java.util.NoSuchElementException,java,exception,error-handling,Java,Exception,Error Handling,样本输入 java.util.NoSuchElementException at java.util.Scanner.throwFor(Scanner.java:907) at java.util.Scanner.next(Scanner.java:1530) at java.util.Scanner.nextInt(Scanner.java:2160) at java.util.Scanner.nextInt(Scanner.java:2119) at Solution.main(Soluti
java.util.NoSuchElementException
at java.util.Scanner.throwFor(Scanner.java:907)
at java.util.Scanner.next(Scanner.java:1530)
at java.util.Scanner.nextInt(Scanner.java:2160)
at java.util.Scanner.nextInt(Scanner.java:2119)
at Solution.main(Solution.java:17)
样本输出错误
我试了什么
3
5 60
1 20 40 100 80
对于假定的hasNextInt修复程序,我得到了更多的重复输出si.e false。在开始时放置一个迭代,并检查以下情况:
if(sc.hasNextInt())
n=sc.nextInt();
if(sc.hasNextInt())
l=sc.nextInt();
对于扫描仪错误,您应该检查扫描仪是否有这样的错误
do {
//Here the code
} while (i.hasNextInt());
这就是我运行你的代码后得到的结果。我想你的代码是正确的。但你没有给它提供信息
当扫描器找不到您要求它读取的内容时,会抛出java.util.NoSuchElementException
给出准确的输入。在代码中,您似乎已经关闭了扫描仪。不要关闭它并在程序中重新实例化它,而是在主程序开始时初始化它一次,并在主程序结束时关闭它 扫描程序在其资源关闭时关闭,因为它实现了 可关闭的接口 就像下面的例子-
3
5 60
1 20 40 100 80
false
从帖子中得出这个答案:您是否在IDE调试器中单步检查了代码以查看它实际在做什么?请这样做,它会对你更有教育意义。如果您这样做了,但仍然不理解,那么请准确解释调试时发现的内容以及您不理解的内容。
Scanner sc =new Scanner(System.in);
if (sc.hasNext()) {
//here the code
}
3
5 60
1 20 40 100 80
false
public static void main(String[] args) throws IOException {
Scanner scanner = new Scanner(System.in);
System.out.println(System.in.available());
scanner.close();
scanner = new Scanner(System.in);
// System.out.println(System.in.available());
// If you uncomment above: It will give you java.io.IOException: Stream closed
String str = scanner.nextLine();
}