当有人在我的scan.nextInt()中输入无效字符时,如何防止错误?

时间:2019-04-04 04:48:55

标签: java

我是Java的新手,目前正在制作一个像基于文本的游戏一样运行的业务模拟器。我希望玩家能够输入他们每小时想要支付给雇员多少钱,但是我确信有人会尝试在输入中输入字母,或者在尝试输入数字时偶然按下键。这给了我一个错误,我不确定如何防止这种事情发生。

我尝试创建一种方法,该方法可以使用输入,数字或字母的整个行,并去除数字以外的所有字符,但这可能是不准确的,并且非常不方便。

2 个答案:

答案 0 :(得分:1)

使用try catch

try
        {
            Integer.parseInt(scanner.nextInt());
            System.out.println(scanner.nextInt() + " is a valid integer number");
        }
        catch (NumberFormatException e)
        {
            System.out.println(scanner.nextInt() + " is not a valid integer number");
        }

答案 1 :(得分:1)

使用try catch,您要查找的异常是InputMismatchException

    Scanner scanner = new Scanner(System.in);
    try {
        scanner.nextInt();
    }
    catch(InputMismatchException e) {
        e.printStackTrace();
    }