国际化JavaI18N:从何处获取区域设置的十进制分组字符
问题:当我想知道在使用给定的语言环境时,哪个字符将用于十进制分组时,我必须查看哪里
我尝试了以下代码:
Locale locale = new Locale("Finnish", "fi");
DecimalFormat format = (DecimalFormat) DecimalFormat.getInstance(locale);
System.out.println(format.format(12345678.123));
这里的问题是,区域设置的参数似乎不正确,但无论如何,我认为一定有某个地方可以查找这些信息,而无需为其编写程序
我在windows控制面板中更改了德语字符,但java程序中没有任何更改,这似乎不是从我机器上的区域设置中获取的
# 1 楼答案
编辑:问题在于你构建
Locale
的方式。试试看:要回答如何以编程方式获取分隔符的问题,可以使用:
# 2 楼答案
寻找消息来源的评论太有挑战性了
在这里可以找到这些东西:
在jdk的rt.jar中,在包sun中。文本参考资料那里有一些文件“FormatData_u[ISO Code].class”,其中包含十进制分组字符和其他相关值,可以通过反编译查看这些文件。Java反编译器(http://java.decompiler.free.fr)在这方面非常有用