当前位置: 首页 > 面试题库 >

Java.Util.Scanner的NoSuchElementException

滑景胜
2023-03-14
问题内容

我是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:

我知道这可能是由于源代码中的某些内容与Scannerfrom中的类不兼容所致java.util,但是在推断出问题所在的方面,我确实无法获得更多的帮助。


问题答案:

NoSuchElementExceptionnextElement枚举方法抛出以指示枚举中没有更多元素。

http://docs.oracle.com/javase/7/docs/api/java/util/NoSuchElementException.html

这个怎么样 :

if(input.hasNextInt() )
     number1 = input.nextInt(); // if there is another number  
else 
     number1 = 0; // nothing added in the input 


 类似资料:
  • 问题内容: 我正在尝试使用接收输入: 但是该命令只是被跳过而返回一个空字符串。我怎么解决这个问题? 问题答案: 该方法不会占用整数后的换行符,因此在调用该方法时,它仅读取整数后的换行符。 例 如果您输入以下内容: 该调用使用了而不是换行符: 现在,当您调用它时,它消耗了第一行的其余部分,该行仅包含换行符。 解 尝试丢弃整数后的其余行: 或者使用一致的方式读取每一行,然后自己将字符串解析为整数:

  • 问题内容: 我正在使用多线程环境,其中一个线程通过反复调用不断侦听用户输入。为了结束应用程序,该运行循环由另一个线程停止,但是直到最后一次用户输入(由于的阻塞性质),监听线程才会停止。 由于我正在从中读取内容,因此关闭流似乎不是一种选择,它返回的是不可关闭的。 有没有一种方法可以中断扫描程序的阻塞,使其返回? 谢谢 问题答案: 该文章描述了一种避免读取时阻塞。它提供了代码片段,您可以按我在注释中指

  • 我猜它是指一个目录层次结构,如果是这样,它究竟是如何工作的?

  • 问题内容: 我是从记录用户输入使用。我需要验证输入内容,例如: 必须为非负数 它必须是字母 …等等 最好的方法是什么? 问题答案: 示例1:验证正整数 这是一个用于int从输入中验证肯定的简单示例。 结果: 请注意,与更详细组合相比,使用起来要容易得多。通过合同,一个 保证,如果它,然后将安静地给你int,并不会引发任何。 示例2:同一令牌上有多个 请注意,上面的代码段包含一个语句,以使Scann

  • 我希望使用java.util.scanner()从控制台读取一个全名,并将该值赋给一个字符串。

  • 我在Eclipse中得到了一个警告,代码如下: 代码: 警告: 这个警告是什么,'资源泄露‘是什么意思? 谢谢.