java - 另一个带有简单程序的 java.util.NoSuchElementException

标签 java

我仍在学习如何使用 java 进行编码,并且遇到了我无法解决的问题。

编译器说:

Exception in thread "main" java.util.NoSuchElementException
    at java.util.Scanner.throwFor(Scanner.java:862)
    at java.util.Scanner.next(Scanner.java:1485)
    at java.util.Scanner.nextInt(Scanner.java:2117)
    at java.util.Scanner.nextInt(Scanner.java:2076)
    at GetInputData.main(GetInputData.java:10)

这是代码

import java.util.Scanner;

public class GetInputData
{
  public static void main(String[] args)
  {
    Scanner in = new Scanner(System.in);
    int tag;
    System.out.println("Enter an integer: ");
    tag = in.nextInt();
    System.out.println("Input Integer is: "+tag);
  }
}

一直在寻找解决方案,但看起来很多人都有这种问题,所以如果你们中的任何人有其他解决方法,请分享给我,我只想要一个简单的程序,可以从我们输入的任何内容中读取,谢谢。

最佳答案

这是 JDK 中 Scanner 类的方法 throwFor,它表明如果 (a) 输入资源关闭,它将抛出 NoSuchElementException或 (b) 您正在输入缓冲区无法容纳的输入。

从您的代码来看,您似乎没有关闭扫描仪(您应该在最后关闭)。因此,唯一的可能性是您输入的内容无效。

顺便说一句,这不是编译器错误,而是运行时异常。

859     private void throwFor() {
860         skipped = false;
861         if ((sourceClosed) && (position == buf.limit()))
862             throw new NoSuchElementException();
863         else
864             throw new InputMismatchException();
865     }

关于java - 另一个带有简单程序的 java.util.NoSuchElementException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49411170/

相关文章:

java - 由于未找到 JRE,Eclipse 无法打开

java - 如何在本地 XML 文件中使用 android 中的 SAXparser 解析 "img src"标记

java - Math.pow(2,63) - 1 == Math.pow(2,63) - 512 为真

java - TestNG - 如何在每次并行运行的类中的所有测试之前运行一次安装程序

java - 如何在使用 Spring 框架实现的 REST API 中返回存在为 false 的 JSON?

JAVA登录页面;如何使用两次读记事本?

java - Java 中的电子邮件服务抛出 "out of memory"错误

java - java中返回多个值的最轻量级方法

java - 如何查找路径是否已用作符号链接(symbolic link)的源

java - 如何让 Maven 下载构建所需的任何文件?