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

Posted

技术标签:

【中文标题】打印菜单。异常 java.util.NoSuchElementException 找不到行【英文标题】:Print menu. Exception java.util.NoSuchElementException no line found 【发布时间】:2016-10-07 20:31:49 【问题描述】:

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

这是我认为导致问题的代码的 sn-p;

   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】:

(对不起,我没有足够的代表发表评论,这应该是评论。)

你什么时候得到异常?它会等你输入吗?你在提示符下输入什么值?

可能是因为您要使用 nextLine() 调用 charAt() 会引发异常。你可以试试这个吗?

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

【讨论】:

问题出现在 ch = printMenu();在 main 中被称为 down。程序打印出菜单并提示用户输入。当用户输入一个字符时,就会出现异常。我尝试了您的解决方案 Jerin Joseph,但异常仍然指向 scnr.nextline();声明并在 ch = printMenu(); 顺便说一句,我正在通过 Zybooks 教学工具运行这个。 @scubasteve7 我看不出代码有什么问题。可能是使用工具运行它的事实导致了问题。该工具可能没有正确读取输入流。 @scubasteve7 你可以试试 scnr.next();而不是nextLine(),只是一个疯狂的尝试,无法理解zybooks工具的行为。 感谢我在 ide 中运行程序的努力,它工作得很好,所以我猜它只是 janky zybook 程序......很高兴知道我因为效率低下而浪费了大部分时间我们必须使用的学习工具...

以上是关于打印菜单。异常 java.util.NoSuchElementException 找不到行的主要内容,如果未能解决你的问题,请参考以下文章

学生菜单打印

切换场景时JavaFX选择框空指针异常

[浏览器]IE帮助菜单存在异常 描述:修复IE浏览器的帮助菜单以及子菜单功能无法使用的异常。

Log4j打印错误异常的详细堆栈信息

Python多种方法实现打印系统菜单

Python多种方法实现打印系统菜单