Java-如何替换;java.util.InputMismatchException“;错在别的东西上
如何使“java.util.InputMismatchException”不显示? 例如:Java-如何替换;java.util.InputMismatchException“;错在别的东西上,java,replace,inputmismatchexception,Java,Replace,Inputmismatchexception,如何使“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.
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
首先,您可以捕获异常并执行所需的操作 更好的方法是使用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();
上面的一行是一个整数。异常表示您输入的内容是其他内容(例如字符串、双精度)
注意:如果要读取任何数字,请将该行替换为:
number = input.nextDouble();
首先看一下扫描器的javadoc。我想你想要的是捕捉例外
number = input.nextDouble();