在 Java 中检查 Scanner 数字输入边界

在许多情况下,如果你想创建交互式命令行界面,你需要检查用户输入的数字是否有效 - 如果无效 - 你想让用户重新输入。

这是一个简单的静态方法,用于检查用户输入的数字是否在给定边界内:

guardedInput.java
/**
 * 让用户输入整数值直到满足给定
 * 条件
 *
 * @param msg 向用户询问值的提示。
 * @param lower 下边界,包含
 * @param upper 上边界,包含
*/
private static int guardedInput(String msg, int lower, int upper) {
    Scanner scanner = new Scanner(System.in);
    while (true) {
        System.out.print(msg);
        int val = -1;
        try {
        val = scanner.nextInt();
        } catch (InputMismatchException ex) {
        System.out.println("非法值:请输入数字!");
        }
        if (val < lower) {
        System.out.println("非法值:必须大于 " + (lower - 1));
        } else if (val > upper) {
        System.out.println("非法值:必须小于 " + (upper + 1));
        } else {
        return val;
        }
    }
}

Check out similar posts by category: Java