# Apache.commons.lang3 的 isNumber 将会在 lang 4 的时候丢弃

**URL:** <https://www.isharkfly.com/t/apache-commons-lang3-isnumber-lang-4/13990>\
**Category:** 程序语言\
**Tags:** java\
**Created:** [June 7, 2022, 12:24am UTC](https://www.isharkfly.com/t/apache-commons-lang3-isnumber-lang-4/13990 "2022-06-07T00:24:12Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![honeymoose](https://www.isharkfly.com/user_avatar/www.isharkfly.com/honeymoose/32/20796_2.png) [@honeymoose](https://www.isharkfly.com/u/honeymoose)\
**Post date:** [June 7, 2022, 12:24am UTC](https://www.isharkfly.com/t/apache-commons-lang3-isnumber-lang-4/13990/1 "2022-06-07T00:24:12Z")

</div>

在判断输入的字符串是不是一个数字的时候，我们通常用的最多的方法就是 ：

`NumberUtils.isNumber("12");`

但是这个方法将会在 Lang 4.0 版本中被丢弃。

可以使用的替代方法为：`isCreatable(String)`

通过查看源代码，我们可以看到 isNumber 也是调用 isCreatable 方法的。

![2022-06-06_20-22-39](https://www.isharkfly.com/images/transparent.png)

```auto
    @Deprecated
    public static boolean isNumber(final String str) {
        return isCreatable(str);
    }

```

isCreatable 方法首先是对输入的字符串拆分成字符，然后对每一个字符进行判断，以确定输入的字符串是不是数字，是不是可以将 String 转换为数字类型。

 ![2022-06-06_20-23-21](https://com-ossez-www-discourse.s3.dualstack.us-east-2.amazonaws.com/discourse-uploads/original/2X/1/1a4b4f03592320436dd97691bc4f141c7f0e1b57.png)

通过上面的方法，我们看到判断的方法还是有点复杂的。
