java是否有一个不对坏数据抛出异常的int.try解析?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (178)

C#有Int.TryParse:Int32.TryParse方法(字符串,Int32%)

这种方法的好处在于它不会为不良数据抛出异常。

在java中,Integer.parseInt("abc")会抛出一个异常,并且在发生这种情况的情况下,很多性能会受到影响。

对于性能问题的情况,有没有办法解决这个问题?

我能想到的唯一方法是针对正则表达式运行输入,但我必须测试以查看更快的输入。

提问于
用户回答回答于

Apache Commons有一个IntegerValidator类,它似乎可以做你想做的事情。Java没有提供任何内置的方法来实现这一点。

用户回答回答于

没有。你必须像这样做:

boolean tryParseInt(String value) {  
     try {  
         Integer.parseInt(value);  
         return true;  
      } catch (NumberFormatException e) {  
         return false;  
      }  
}

...你可以这样用它

if (tryParseInt(input)) {  
   Integer.parseInt(input);  // We now know that it's safe to parse
}

扫码关注云+社区

领取腾讯云代金券