如何使用 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)。但是,它有两个限制:
为了解决这些问题,我们可以利用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中文网其他相关文章!