我正在开发一个相对简单的项目,它显示一个菜单并提示用户输入以在switch语句中使用,所有这些都包含在方法中。但是程序会生成异常;
Exception in thread "main" java.util.NoSuchElementException: No line found
at java.util.Scanner.nextLine(Scanner.java:1585)
at AuthoringAssistant.printMenu(AuthoringAssistant.java:49)
at AuthoringAssistant.main(AuthoringAssistant.java:64)
以下是我认为导致问题的代码片段;
private static char printMenu(){
Scanner scnr = new Scanner(System.in);
System.out.println("\nMENU");
System.out.println("c - Number of non-whitespace characters");
System.out.println("w - Number of words");
System.out.println("f - Find text");
System.out.println("r - Replace all !'s");
System.out.println("s - Shorten spaces");
System.out.println("q - Quit");
System.out.println("\nChoose an option: ");
char choice=scnr.nextLine().charAt(0);//line 49
return choice;
}
在调用函数的main中的某处:
while(endMenu == false){
char ch =printMenu();//line 64
switch(ch){
如果您能提供任何反馈,感谢您!
答案 0 :(得分:0)
(抱歉,我没有足够的代表发表评论,这应该是评论。)
你什么时候得到例外?是否等待您输入输入?你在提示时键入了什么价值?
可能是因为你想用nextLine()调用charAt()它会抛出异常。你能试试吗?
String choiceString = scnr.nextLine();
char choice = choiceString.charAt(0);
return choice;