首页 >Java >java教程 >使用Java的'Scanner”时如何避免'NoSuchElementException”?

使用Java的'Scanner”时如何避免'NoSuchElementException”?

Patricia Arquette
Patricia Arquette原创
2024-12-04 22:59:12668浏览

How to Avoid `NoSuchElementException` When Using Java's `Scanner`?

在 Java 中调试 NoSuchElementException

当使用 Java 的 Scanner 类时遇到“NoSuchElementException”时,表示提供的输入与班级的期望。当扫描仪尝试检索某个值但未找到任何值时,就会发生该错误。

请考虑以下代码片段:

import java.util.Scanner;

public class Addition {
  public static void main(String[] args) {
    Scanner input = new Scanner(System.in);

    int number1, number2, sum;

    System.out.print("Enter First Integer: ");
    number1 = input.nextInt();

    System.out.print("Enter Second Integer: ");
    number2 = input.nextInt();

    sum = number1 + number2;
    System.out.printf("Sum is %d\n", sum);
  }
}

如果用户仅输入一个整数并在输入其次,它会抛出一个NoSuchElementException。

解决方案

要解决此问题,请在读取之前检查另一个整数的可用性。下面是代码的修改版本:

if (input.hasNextInt()) {
  number1 = input.nextInt();
} else {
  // Handle input error or set number1 to a default value
}

通过合并此检查,代码可确保仅在可用时读取整数,从而防止出现异常。

替代方案Option

另一种方法是使用 hasNextLine() 方法检查是否有进一步的输入,然后调用nextLine() 在尝试检索另一个整数之前清除缓冲区。

以上是使用Java的'Scanner”时如何避免'NoSuchElementException”?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn