首页 >Java >java教程 >如何使用Java的扫描器优雅地处理无效的整数输入?

如何使用Java的扫描器优雅地处理无效的整数输入?

DDD
DDD原创
2024-12-18 07:07:10223浏览

How to Gracefully Handle Invalid Integer Input with Java's Scanner?

如何使用 Scanner 处理无效输入

在使用 Scanner 进行用户输入时,处理无效输入(例如非数字字符)是非常重要的对于程序的稳健性至关重要。让我们探索解决此问题的解决方案。

考虑以下代码片段:

Scanner kb = new Scanner(System.in);
int num1;
int num2 = 0;

System.out.print("Enter number 1: ");
num1 = kb.nextInt();

while (num2 < num1) {
    System.out.print("Enter number 2: ");
    num2 = kb.nextInt();
}

此代码旨在从用户处获取两个整数,确保第二个数字 (num2) 是大于第一个 (num1)。但是,它有两个限制:

  1. 它不会检查非数字输入,如果用户输入字符而不是数字,则会导致程序崩溃。
  2. 即使在为 num2 输入有效输入后,循环仍会继续,因为 while 条件始终为 true。

为了解决这些问题,我们可以利用Scanner.hasNextInt() 方法,该方法确定输入中的下一个标记是否可以解释为整数。

以下代码片段包含这些改进:

Scanner sc = new Scanner(System.in);
System.out.print("Enter number 1: ");
while (!sc.hasNextInt()) sc.next();
int num1 = sc.nextInt();
int num2;
System.out.print("Enter number 2: ");
do {
    while (!sc.hasNextInt()) sc.next();
    num2 = sc.nextInt();
} while (num2 < num1);
System.out.println(num1 + " " + num2);

通过检查有效使用 hasNextInt() 输入并忽略无效字符,程序可以优雅地处理非数字输入。此外,do-while 循环可确保第二个数字大于第一个数字,从而防止在获得有效输入后继续循环。

以上是如何使用Java的扫描器优雅地处理无效的整数输入?的详细内容。更多信息请关注PHP中文网其他相关文章!

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