2012-07-21 113 views
7

Java的NumberFormat是1)非线程安全的(可以用ThreadLocal解决); 2)inconvenient to use correctly对于最简单的用例时,我知道该字符串是否应包含的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中找到。我错过了吗?或者还有另一个或多或少的标准解决方案?

+0

'Integer.parseInt'和弟兄们的问题是什么? – 2012-07-21 12:33:13

+0

我想它不支持不同的数字格式? – 2012-07-21 12:36:29

+0

@MarkoTopolnik他们是独立于语言环境的,所以不要使用正确的小数点分隔符等。 – 2012-07-21 12:38:12

回答

相关问题