【发布时间】:2021-07-25 12:59:12
【问题描述】:
我正在根据语言和地区设置区域设置,并希望使用此设置解析 BigDecimal 数字。但我面临的问题是两个 OpenJDK 的分组分隔符不同。
以下是我尝试使用 OpenJDK 8 和 OpenJDK 11 执行的示例代码。
Locale l = new Locale.Builder().setLanguage("de").setRegion("CH").build();
System.out.println("Locale set to " + Locale.getDefault(Locale.Category.FORMAT));
DecimalFormat nf = (DecimalFormat)NumberFormat.getInstance(Locale.getDefault(Locale.Category.FORMAT));
System.out.println("Grouping Separator: " + nf.getDecimalFormatSymbols().getGroupingSeparator());
输出
OpenJDK 8
---------
Locale set to de_CH
Grouping Separator: '
OpenJDK 11
----------
Locale set to de_CH
Grouping Separator: ’
我需要一个通用的解析方法,其中分组分隔符返回相同,以便设计我的单元测试并且无论使用 java 8 还是 11 运行它都可以通过。请协助。
【问题讨论】:
-
为什么不您希望不同版本之间发生变化?如果你想要一个常量分组分隔符,specify your own。
标签: java java-8 locale java-11 openjdk-11