具有parseInt,parseLong,parseDouble等的Java库接受默认值而不抛出异常?

时间:2013-05-22 18:01:01

标签: java parsing

我喜欢String to Int in java - Likely bad data, need to avoid exceptions中的建议来实现解析int的实用程序方法,但如果无法解析字符串,则返回默认值。

public static int parseInt(String s, int defaultValue) {
    if (s == null) return defaultValue;
    try {
         return Integer.parseInt(s);
     } catch (NumberFormatException x) {
         return defaultValue;
     }  
}

是否存在一个现有的开源库(例如来自apache commons,或google),它实现了这个以及其他数据类型,如boolean,float,double,long等?

2 个答案:

答案 0 :(得分:13)

Apache Commons Lang使用方便的转换方法org.apache.commons.lang3.math.NumberUtils。换句话说,如果出现错误,您可以指定默认值。 e.g。

NumberUtils.toLong("")         => 0L
NumberUtils.toLong(null, 1L)   => 1L

NumberUtils.toByte(null)       => 0
NumberUtils.toByte("1", 0)     => 1

答案 1 :(得分:8)

Guava有几个tryParse方法在失败的解析上返回null,例如Ints.tryParseFloats.tryParse