问题描述
class Main {
public static void main(String args[]) {
Scanner sc = new Scanner(system.in);
Scanner sc2 = new Scanner(system.in);
int x = sc.nextInt();
String name = sc2.nextLine();
System.out.println("Test = " + x + name);
}
}
它给了我这个错误:
Exception in thread "main" java.util.NoSuchElementException: No line found
at java.base/java.util.Scanner.nextLine(Scanner.java:1651)
at Main.main(Main.java:9)
如果我仅使用一台sc
扫描仪,则该代码有效。我的Java版本是SDK v.13.0.1。
解决方法
为什么需要两个单独的扫描仪?一台扫描仪可以同时执行nextInt
和nextLine
。
两个扫描仪是多余的。
问题在于两个实例都使用相同的InputStream。
解决方案:使用一台扫描仪。