如何检查字符串是float还是int?

时间:2017-04-01 11:09:45

标签: java string int

我有一个字符串,我知道它只包含一个数字。

我想检查这个数字是int还是float。

2 个答案:

答案 0 :(得分:13)

有很多方法可以解决您的问题,例如您可以使用try{}catch(){}

解决方案1 ​​

public static void main(String[] args) {
    String str = "5588";
    //check if int
    try{
        Integer.parseInt(str);
    }catch(NumberFormatException e){
        //not int
    }
    //check if float
    try{
        Float.parseFloat(str);
    }catch(NumberFormatException e){
        //not float
    }
}

解决方案2

或者您可以使用正则表达式[-+]?[0-9]*\.?[0-9]+

boolean correct = str.matches("[-+]?[0-9]*\\.?[0-9]+");

有关详细信息,请查看此Matching Floating Point Numbers with a Regular Expression

答案 1 :(得分:1)

迟到的聚会。在Apache Commons NumberUtils类中。

NumberUtils.isCreatable(String),它检查字符串是否是有效的Java数字。

    log.info("false {} ", NumberUtils.isCreatable("NA.A"));
    log.info("true {} ", NumberUtils.isCreatable("1223.589889890"));
    log.info("true {} ", NumberUtils.isCreatable("1223"));
    log.info("true {} ", NumberUtils.isCreatable("2.99e+8"));

希望这对某人有帮助。