我有一个方法:
public BigInteger method(String param){
try{
return new BigInteger(param);
}catch(NumberFormatException e){
LOG.error(e, e);
}
}
我想检查是否可以从那些BigInteger
创建String param
而不生成NumberFormatException
。
有没有办法这样做?
答案 0 :(得分:2)
您可以使用Apache Commons的NumberUtils。它有isDigits()方法。
答案 1 :(得分:1)
基本上你有两种可能的方法:
检查字符串是否只包含数字,并且不超过Bigint中的数字
施放在try{}catch()
中并抓住所有内容......这不是很高效,更像是一种懒惰的做法!
Here你可能会找到一些灵感:)
答案 2 :(得分:1)
您可以检查它是否与^-?\s*\d+$
匹配,但只是尝试和捕捉实际上很好。
使用异常 高比例的无效字符串,只需尝试捕捉
无需记录错误,只需返回适合您的任何内容(我想象null
或BigInteger.ZERO
)。
答案 3 :(得分:0)
我认为在这里捕捉异常是完全可以的。
只是,记录它是愚蠢的。只需返回null
或相应的BigInteger sentinel /默认值即可。 (并适当使用返回值。)