3

我喜欢String to Int in java 中的建议 - 可能是坏数据,需要避免异常来实现解析 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 等?

4

2 回答 2

14

Apache Commons Lang具有org.apache.commons.lang3.math.NumberUtils用于转换的便捷方法的类。另一种方式是,如果出现错误,您可以指定一个默认值。例如

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

NumberUtils.toByte(null)       => 0
NumberUtils.toByte("1", 0)     => 1
于 2013-05-22T18:06:13.427 回答
7

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

于 2013-05-22T18:03:15.690 回答