Java i18n:从何处获取区域设置的小数分组字符

Mat*_*yel 4 java internationalization

问题:当我想知道在使用给定语言环境时哪个字符将用于十进制分组时,我需要查看哪些内容?

我尝试了以下代码:

Locale locale = new Locale("Finnish", "fi");
DecimalFormat format = (DecimalFormat) DecimalFormat.getInstance(locale);
System.out.println(format.format(12345678.123));
Run Code Online (Sandbox Code Playgroud)

这里的问题是,语言环境的参数似乎不正确,但无论如何我认为必须有一些地方可以查找这些信息而无需为其编写程序.

似乎这些东西不是从我的机器上的区域设置中获取的,因为我在Windows控制面板中更改了德语的字符,但java程序中没有任何变化.

Jon*_*eet 11

编辑:问题是你构建你的方式Locale.试试吧:

Locale locale = new Locale("fi");
Run Code Online (Sandbox Code Playgroud)

要回答有关如何以编程方式获取分隔符的问题,您可以使用:

Locale locale = new Locale("fi");
DecimalFormat format = (DecimalFormat) NumberFormat.getInstance(locale);
DecimalFormatSymbols symbols = format.getDecimalFormatSymbols();
char groupingChar = symbols.getGroupingSeparator();
Run Code Online (Sandbox Code Playgroud)