7

JavaNumberFormat是 1) 非线程安全的(可以使用 a 来解决ThreadLocal);2)当我知道字符串是否应该包含 int、long 或 double 并且想要如下 API 时,不方便正确使用最简单的用例:

int parseInt(String str, Locale locale) throws ParseException; 
int parseInt(String str, int defaultValue, Locale locale);
long parseLong(String str, Locale locale) throws ParseException;
long parseLong(String str, long defaultValue, Locale locale);
double parseDouble(String str, Locale locale) throws ParseException;
double parseDouble(String str, double defaultValue, Locale locale);

当字符串未完全解析时引发异常。显然,这样的包装器很容易编写,但我在 Guava 或 Apache Commons Lang 中找不到。我只是错过了吗?还是有另一种或多或少的标准解决方案?

4

1 回答 1

3

我发现的一个选项是Apache Commons Validator(仍然是非线程安全的)。

于 2012-07-21T13:15:40.813 回答