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 中找不到。我刚刚错过了吗?还是有另一种或多或少的标准解决方案?
最佳答案
我找到的一个选项是 Apache Commons Validator (仍然是非线程安全的)。
关于java - 安全地解析数字并且对区域设置敏感,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11591810/