安全解析数字和语言环境敏感(Parsing numbers safely and locale-se

2019-06-26 11:04发布

Java的NumberFormat是1)非线程安全的(可以围绕一个待加工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);

其中,当字符串没有完全解析抛出异常。 显然,这样的包装是很容易写,但我无法找到一个番石榴或Apache Commons Lang中。 难道我只是错过呢? 或者是有这个另一个更或多或少标准的解决方案?

Answer 1:

我发现一个选项是Apache的百科全书验证 (仍然是非线程安全的)。



文章来源: Parsing numbers safely and locale-sensitively