提问人:CaMiiN03 提问时间:4/17/2022 最后编辑:CaMiiN03 更新时间:4/17/2022 访问量:85
使用扫描仪时没有此类元素异常
No such element exception working with a Scanner
问:
我在使用扫描仪时遇到了问题,我不知道如何解决它,这在 Java 中有点新。我创建了一个菜单来读取用户通过扫描仪提供的输入字符,并通过以下循环从菜单中读取选项:
/**
* Constant to exit the menu.
*/
private static final char EXIT = 'E';
public void run() {
char option = EXIT;
do {
menu.show();
option = menu.readOption();
try {
processOption(option);
} catch (RuntimeException exception) {
handleSystemError(exception);
} catch (Exception exception) {
handleUserError(exception);
}
} while (option != EXIT);
}
这是 readOption 方法的作用:
public char readOption() {
return Console.readChar(" Option ");
}
这就是 readChar 方法的作用:
public static char readChar(String msg) {
out.println( msg + ": ");
keyboard.useDelimiter(System.lineSeparator());
char res = keyboard.next().charAt(0);
keyboard.reset();
return res;
}
问题是,第一次表演的循环工作得很好。该程序正常工作。但是在第一次表演之后,当它再次启动时,在它读取 Option 的行中,它会抛出一个 NoSuchElementException,我已经花了很多时间试图解决它,但我不知道该怎么做。显然问题出在readChar方法中,当我尝试执行“keyboard.next()”时,它会抛出no such element异常。无法解释它第一次有效,第二次无效。第一次表演时,它会等待我按照我的预期引入一个字符,但在第二个性能中,虽然我希望引入一个字符,但当“keyboard.next()”时,它会抛出提到的异常。我的扫描仪显然有问题,我希望有人能在这里找到问题。非常感谢大家。
答:
0赞
CaMiiN03
4/17/2022
#1
多亏了这个页面,我终于找到了解决它的方法: Solucione el error NoSuchElementException en Java
问题是,由于这个程序的大小,我不得不同时使用2个扫描仪,当我关闭其中一个扫描仪时,它导致另一个停止工作,引发该异常。
评论