java - 此错误消息是什么意思,我该如何解决这个问题?
问题描述
我最近开始学习 java 并且对扫描仪和一般输入感到很困惑。对于这个例子,我的输出正是它所需要的,但我收到一条奇怪的错误消息,这是什么意思,我的错误是什么?
代码,如果它看起来非常无组织,很抱歉,但这是我第一次写这么长的东西。
import java.util.*;
class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String a = sc.next();
String b = sc.next();
String c = sc.next();
String d = sc.next();
String e = sc.next();
String f = sc.next();
String g = sc.next();
String h = sc.next();
String i = sc.next();
String j = sc.next();
String k = sc.next();
String l = sc.next();
String m = sc.next();
String n = sc.next();
String o = sc.next();
String p = sc.next();
System.out.println(h);
System.out.println(g);
System.out.println(f);
System.out.println(e);
System.out.println(d);
System.out.println(c);
System.out.println(b);
System.out.println(a);
System.out.println(p);
System.out.println(o);
System.out.println(n);
System.out.println(m);
System.out.println(l);
System.out.println(k);
System.out.println(j);
System.out.println(i);
}
}
错误信息:
Failed test #1 of 3. Runtime error
Exception in thread "main" java.util.NoSuchElementException
at java.base/java.util.Scanner.throwFor(Scanner.java:937)
at java.base/java.util.Scanner.next(Scanner.java:1478)
at Main.main(Main.java:15)
解决方案
在 3 的测试 #1 中,此时可能没有元素传递给您的程序。
您应该检查hasNext()
,在访问下一个元素之前调用该方法:
if (sc.hasNext()) {
value = sc.next();
}
来自官方 Java文档:
抛出: NoSuchElementException - 如果没有更多的令牌可用
推荐阅读
- xcode-server - Xcode Server 11 导出存档失败
- matlab - 错误信息:无法解析名称 obj.key
- javascript - 如何从一个框架设置 document.cookie 并在另一个框架中获取它
- ios - 为什么 iMessages 会更改我通过 UIActivityViewController 传递给它的 URL?
- r - 比例测试功率分析的自举
- r - R data.table:检测每组内的值模式
- python - 将 Python 列表拆分为具有最大内存大小的块
- python - 打开 .py 文件时 Tkinter Gui 未运行
- reactjs - 反应中具有动态 URL 的私有路由
- internet-explorer-11 - 到 OpenFire 的 inVerse(来自 Converse.js)插件在 IE11 上不起作用