如何使“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”时,它会在线程中给出错误 Exception“main “java.util.InputMismatchException 。如果用户输入无效的int,有没有办法绕过错误并显示/执行其他操作?
像这样:
Type in a number: a
That is not a valid number. Try again
答案 0 :(得分: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();
答案 1 :(得分:0)
number = input.nextInt();
上面的行读取整数。异常意味着您正在输入其他内容(例如String,double)
注意:如果您想阅读任何数字,请将该行替换为:
number = input.nextDouble();