当前位置: 首页 > 知识库问答 >
问题:

Java中的NoTouchElementException。Util。扫描仪

常博裕
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

我得到'NoSuchElementExcema'错误:

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中的Scanner类不兼容。util,但我真的无法进一步推断问题所在。

共有3个答案

云啸
2023-03-14

如果没有更多的令牌可用,NoSuchElementExc0019将被抛出。这是由调用nextInt()而不检查是否有可用的整数引起的。为了防止这种情况发生,您可以考虑使用hasNextInt()来检查是否有更多的令牌可用。

岳出野
2023-03-14

在给变量赋值之前,应该使用hasNextInt()

申屠晟
2023-03-14

由枚举的nextElement方法引发,以指示枚举中没有更多的元素。

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 
 类似资料:
  • 我正在做一个学校的项目。 我试图收集数据从一个. txt文件与但我得到一个错误,当我想使用启动变量。 如果我删除变量并放置一些,它会正确显示数据,但仍会输出此错误。

  • 我目前正在使用Spring编写一个API后端,我想使用Spring Boot将其部署到正式服上。 如果我在Eclipse编译到war(在Maven中指定的)中运行后端,并使用Tomcat 7,它运行时没有问题。 然而,因为我想部署到服务器,我使用Spring Boot。 一个pplication.java 波姆。xml 当我将整个项目复制到我的linux服务器上,并运行maven包时,代码编译没有

  • 我正在创建一个使用2个类的程序。在一个类中,我创建方法,然后由第二个类调用。所有方法都包含在第一个类中,第二个类只是调用它们并执行代码。 第 1 类 第二类 这是我得到的错误: ...“它有点工作”语句只是为了看看它是否正确调用了该方法,看起来确实如此。 根据我的理解,这个错误告诉我它从。txt文件,但idk为什么会这样。它能正确读取文件吗?任何类型的帮助都很好,因为我已经盯着这段代码看了几个小时

  • 我正在尝试根据输入打印输出Win or Lose,但收到错误。请在我的代码问题下方- 一种新的格斗游戏变得很流行。里面有n个恶棍,每个都有一些力量。游戏中有n个玩家,每个人都有一些能量。能量被用来杀死恶棍。只有当玩家的能量大于恶棍的力量时,恶棍才能被杀死。 马克西在比赛中,在特定的时间,他想知道他是否有可能在给定的球员和反派的能量和力量下赢得比赛。如果马克西的球员能够用分配的能量杀死所有的恶棍,他

  • 你好~我使用JNA,我想让另一个程序出现在屏幕上,但它不起作用。 这是我的代码。 导入com。太阳jna。站台win32.User32; 导入com。太阳jna。站台win32.WinDef;公共类主{ } 这个代码只是为了测试...没有扫描仪,它工作得很好。但是有了扫描仪,只有SW_SHOWMAXIMIZED工作。否则,程序就不会出现在屏幕上。它只是在图标栏上闪烁。我想扫描仪与系统调用或其他什么

  • 问题内容: 如何将扫描仪的定界符设置为;或换行? 我试过: 但这不起作用。 问题答案: 通常,在模式中,您需要将翻倍。 所以,尝试 要么 编辑 :如果是问题,则可能要尝试以下操作: 它匹配的一个或多个,和。 注意 :我还没有尝试过这些。