如何在Java中检查值的类型?

时间:2013-12-08 14:24:10

标签: java variables input integer

我正在创建一个程序,我希望用户在变量中输入值。输入后我想检查值类型,但我不知道如何。看起来有点像这样:

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)

但它不能修复错误,也不适用于整数。

有关如何解决此问题的任何想法?

2 个答案:

答案 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()