NoSuchElementException Java.Util.Scanner 的挫败感
遇到“NoSuchElementException”错误可能会令人困惑,特别是对于像您这样的 Java 新手来说。当 Scanner 类无法从输入流检索下一个标记时,会发生此错误。让我们深入研究您的特定代码以找出根本原因:
import java.util.Scanner; public class Addition { public static void main(String[] args) { Scanner input = new Scanner(System.in); int number1; // first number to add int number2; // second number to add int sum; // sum of 1 & 2 // Problem: Reading input values without checking for input availability System.out.print("Enter First Integer: "); number1 = input.nextInt(); // Exception occurs here when no input is provided System.out.print("Enter Second Integer: "); number2 = input.nextInt(); // Exception occurs here if input is not available for this prompt sum = number1 + number2; // Addition occurs, assuming input values are available System.out.printf("Sum is %d\n", sum); // Displays the sum, if input is available } }
问题在于代码尝试读取输入而不首先验证输入是否可用。如果用户未提供输入或输入整数以外的内容,则 input.nextInt() 方法会引发“NoSuchElementException”。
解决方案:
消除对于这个问题,我们需要在尝试检索之前检查输入可用性it:
if (input.hasNextInt()) { number1 = input.nextInt(); } else { // Handle the case where no input is provided }
解释:
hasNextInt() 方法检查输入流中的下一个标记是否是整数。如果返回 true,则可以使用 input.nextInt() 方法来检索整数。否则,代码可以优雅地处理这种情况,例如将 number1 设置为 0 或显示错误消息。
通过实现此检查,您的代码将不再抛出“NoSuchElementException”并且将按预期运行,从而允许用户输入整数并计算其总和。
以上是为什么我的 Java 扫描器会抛出 NoSuchElementException,如何修复它?的详细内容。更多信息请关注PHP中文网其他相关文章!