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中。 难道我只是错过呢? 或者是有这个另一个更或多或少标准的解决方案?