打印菜单。异常java.util.NoSuchElementException找不到行

时间:2016-10-07 20:31:49

标签: java exception switch-statement user-defined-functions

我正在开发一个相对简单的项目,它显示一个菜单并提示用户输入以在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){

如果您能提供任何反馈,感谢您!

1 个答案:

答案 0 :(得分:0)

(抱歉,我没有足够的代表发表评论,这应该是评论。)

你什么时候得到例外?是否等待您输入输入?你在提示时键入了什么价值?

可能是因为你想用nextLine()调用charAt()它会抛出异常。你能试试吗?

String choiceString = scnr.nextLine();
char choice = choiceString.charAt(0);
return choice;