有什么方法可以检查java中的字符串是否为数字?

时间:2019-01-25 09:34:38

标签: java

所以我想检查我的String是否可以是数字。 我不想为此写任何样板代码。 通用Apache isNumeric()有一种方法
但是对于""空白值,它为true,对于十进制值(12.3,它为false。 那么还有其他方法可以做到吗?

5 个答案:

答案 0 :(得分:1)

最简单的方法是通过方法进行解析。

exp。

try {
        double d = Double.parseDouble(STRING_TO_TEST);
    } catch (NumberFormatException | NullPointerException e) {
        //do logic 
    }
    return true;

但是,如果您不需要这个,Apache Commons有一个有用的方法:

NumberUtils.isCreatable("22.6") ;

返回true

NumberUtils.isCreatable("") ;

返回假

更多信息:https://www.baeldung.com/java-check-string-number

答案 1 :(得分:1)

public boolean isNumber(String s) {
  try {
    Double.parseDouble(yourString);
    return true;
  } catch(Exception e) {
    return false;
  } 
}

如果Java可以解决问题,这将为您提供真实的感觉

答案 2 :(得分:0)

您可以为此使用regexregex为: [0-9]+

以下是一些示例:

String regex = "[0-9]+";
System.out.println("12".matches(regex));
System.out.println("abc".matches(regex));
System.out.println("".matches(regex));

如果还要考虑十进制值,则可以使用 [0-9]+(\.)?[0-9]* 作为正则表达式。

答案 3 :(得分:0)

是的,在Apache Commons库中,存在具有以下给定方法的NumberUtils类(org.apache.commons.lang3.math.NumberUtils)。

 public static boolean isParsable(String str)

这将检查给定的String是否为可解析的数字。 请在https://commons.apache.org/proper/commons-lang/apidocs/org/apache/commons/lang3/math/NumberUtils.html#isParsable-java.lang.String-

中找到详细的文档

答案 4 :(得分:0)

使用Apache Commons Lang 3.5及更高版本:NumberUtils.isCreatable或StringUtils.isNumeric。

http://commons.apache.org/proper/commons-lang/javadocs/api-release/org/apache/commons/lang3/math/NumberUtils.html#isCreatable-java.lang.String-