我是Java的新手。我想获得用户输入。在我的程序的一部分,这工作,但在我的程序的另一部分使用相同的代码,提供以下错误:
Exception in thread "main" java.util.NoSuchElementException
at java.util.Scanner.throwFor(Scanner.java:862)
at java.util.Scanner.next(Scanner.java:1371)
at Display.displayInstructions(Display.java:31)
at SimpleWordGame.main(SimpleWordGame.java:6)
这是我的扫描仪代码:
Scanner inputChoice = new Scanner(System.in);
String playerChoice;
System.out.println("Do you wish to play the Simple Word Game (Y/N)? ");
playerChoice = inputChoice.next();
inputChoice.close();
答案 0 :(得分:3)
删除对
的调用inputChoice.close();
问题是您的扫描仪Scanner inputChoice = new Scanner(System.in);
包裹了全球 System.in
。如果您close()
,那么尝试从System.in
获取输入将会失败。
如果此扫描程序尚未关闭,那么如果其底层可读也实现了
Closeable
接口,那么将调用可读的close方法
和System.in
是InputStream
(因此Closeable
)。