java - 安全地解析数字并且对区域设置敏感

标签 java parsing guava apache-commons apache-commons-lang

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/

相关文章:

java - 有效地 "modifying"一个 ImmutableMap

java - Google Guava 供应商示例

java - 如何使用嵌套的通用参数创建 MinMaxPriorityQueue?

java - 将 Surefire 测试结果链接到 Jenkins 中的 WebDriver 屏幕截图

ruby - 使用 ruby​​ 解析 PDF 文档

java - 使用@Transient注解进行持久化存储

ios - 估计数据和服务器数据不匹配 Parse.com

PHP:循环并解析数组

java - java 的球形几何库

java - 如何在 Janusgraph 中演化模式?