NoSuchElementException 与 Java.Util.Scanner

新手上路,请多包涵

我是 Java 的新手,但正在阅读 Java:如何编程(第 9 版)这本书,并且已经找到了一个例子,在我的一生中,我无法弄清楚问题是什么。

这是教科书中源代码示例的(稍微)扩充版本:

 import java.util.Scanner;
public class Addition {
  public static void main(String[] args) {
    // creates a scanner to obtain input from a command window

    Scanner input = new Scanner(System.in);

    int number1; // first number to add
    int number2; // second number to add
    int sum; // sum of 1 & 2

    System.out.print("Enter First Integer: "); // prompt
    number1 = input.nextInt(); // reads first number inputted by user

    System.out.print("Enter Second Integer: "); // prompt 2
    number2 = input.nextInt(); // reads second number from user

    sum = number1 + number2; // addition takes place, then stores the total of the two numbers in sum

    System.out.printf( "Sum is %d\n", sum ); // displays the sum on screen
  } // end method main
} // end class Addition

我收到“NoSuchElementException”错误:

 Exception in thread "main" java.util.NoSuchElementException
at java.util.Scanner.throwFor(Scanner.java:838)
at java.util.Scanner.next(Scanner.java:1461)
at java.util.Scanner.nextInt(Scanner.java:2091)
at java.util.Scanner.nextInt(Scanner.java:2050)
at Addition.main(Addition.java:16)
Enter First Integer:

我知道这可能是由于源代码中的某些内容与 --- 中的 java.util Scanner 类不兼容,但在推导方面我真的无法比这更进一步问题是什么。

原文由 adaam 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 640
2 个回答

我在使用 nextDouble() 时遇到了这个错误,当我输入 5.3、23.8 等数字时…我认为这是来自我的 PC,具体取决于使用阿拉伯语的计算机设置(23,33 而不是 23.33),我通过添加修复了它:扫描仪scanner = new Scanner(System.in).useLocale(Locale.US);

原文由 Saeed Dai Alnoor 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题