我正在创建一个程序,我希望用户在变量中输入值。输入后我想检查值类型,但我不知道如何。看起来有点像这样:
import java.util.Scanner;
Scanner scanner = new Scanner(System.in);
int num1;
num1 = scanner.nextInt();
我想要一些方法来检查num1的类型,这样我就可以确保用户输入了一个可用值,即确保他们没有输入字符串,例如“qwerty”进入整数变量,以便我可以继续捕获错误,而不是最终得到 java.util.InputMismatchException 。我试过了:
if(num1 instanceof java.lang.String)
但它不能修复错误,也不适用于整数。
有关如何解决此问题的任何想法?
答案 0 :(得分:3)
public boolean isInteger( String input ) {
try {
Integer.parseInt( input );
return true;
}
catch( Exception e ) {
return false;
}
}
像其他人一样提到并使用scanner.next()
来检索字符串。之后,您可以使用上面的代码片段来检查字符串是否为整数。
对于双人而言,它看起来很相似:
boolean isDouble(String str) {
try {
Double.parseDouble(str);
return true;
} catch (NumberFormatException e) {
return false;
}
}
答案 1 :(得分:1)
Java是一种静态类型语言,因此scanner.nextInt();
将始终返回int。
如果希望返回类型为String call scanner.next()