如何检查是否可以从String创建BigInteger

时间:2013-11-08 07:48:00

标签: java

我有一个方法:

public BigInteger method(String param){
    try{
            return new BigInteger(param);
    }catch(NumberFormatException e){
        LOG.error(e, e);
    }
}

我想检查是否可以从那些BigInteger创建String param而不生成NumberFormatException

有没有办法这样做?

4 个答案:

答案 0 :(得分:2)

您可以使用Apache Commons的NumberUtils。它有isDigits()方法。

答案 1 :(得分:1)

基本上你有两种可能的方法:

  1. 检查字符串是否只包含数字,并且不超过Bigint中的数字

  2. 施放在try{}catch()中并抓住所有内容......这不是很高效,更像是一种懒惰的做法!

  3. Here你可能会找到一些灵感:)

答案 2 :(得分:1)

您可以检查它是否与^-?\s*\d+$匹配,但只是尝试和捕捉实际上很好。

使用异常 高比例的无效字符串,只需尝试捕捉 无需记录错误,只需返回适合您的任何内容(我想象nullBigInteger.ZERO)。

答案 3 :(得分:0)

我认为在这里捕捉异常是完全可以的。

只是,记录它是愚蠢的。只需返回null或相应的BigInteger sentinel /默认值即可。 (并适当使用返回值。)