Java i18n: Where to get the decimal grouping character for a locale
问题:当我想知道使用给定语言环境时哪个字符将用于十进制分组时,我应该去哪里查看?
我尝试了以下代码:
1 2 3 | Locale locale = new Locale("Finnish","fi"); DecimalFormat format = (DecimalFormat) DecimalFormat.getInstance(locale); System.out.println(format.format(12345678.123)); |
这里的问题是,语言环境的参数似乎不正确,但是我仍然认为必须在某个地方可以查找这些信息而无需编写程序。
当我在Windows控制面板中更改了德语字符时,似乎没有从机器上的区域设置中获取内容,但是Java程序中没有任何更改。
编辑:问题是您构造
要回答有关如何以编程方式获取分隔符的问题,请使用:
1 2 3 4 | Locale locale = new Locale("fi"); DecimalFormat format = (DecimalFormat) NumberFormat.getInstance(locale); DecimalFormatSymbols symbols = format.getDecimalFormatSymbols(); char groupingChar = symbols.getGroupingSeparator(); |
在源代码中查找的评论太具有挑战性了...
在这里可以找到这些东西:
在jdk的rt.jar中,在包sun.text.resources中有文件" FormatData_ [ISO-Code] .class"文件,其中包含用于十进制分组的字符和其他相关值,并且可以通过反编译查看它们。 Java Decompiler(http://java.decompiler.free.fr)在这一方面非常有帮助。