0

如何使它不显示“java.util.InputMismatchException”?

例如:

import java.util.Scanner;

class Test {
  public static void main(String args[]){

    Scanner input = new Scanner(System.in);
    int number;

    System.out.print("Type a number: ");
    number = input.nextInt();
    System.out.println(number);

    input.close();
  }
}

当你输入一个有效的 int 时它工作正常,比如“5”,但是当用户输入一个无效的 int 时,比如“5.1”或“a”,它会在线程“main”java.util.InputMismatchException 中给出错误异常. 如果用户输入无效的 int,有没有办法绕过错误并显示/执行其他操作?

像这样:

Type in a number: a
That is not a valid number. Try again
4

2 回答 2

1

首先,您可以捕获异常并做您想做的事情。

更好的方法是使用Scanner.hasNextInt()测试行用户输入是否为 int。

System.out.println("Type a number");
while(!input.hasNextInt()) {
    input.nextLine();
    System.out.println("That is not a valid number. Try again");
}
number = input.nextInt();
于 2014-03-31T02:10:48.253 回答
0
number = input.nextInt();

上面的行读取一个整数。异常意味着您正在输入其他内容(例如字符串、双精度)

注意:如果您想读取任何数字,请将该行替换为:

number = input.nextDouble();
于 2014-03-31T02:11:10.987 回答