javai18n:从何处获取区域设置的十进制分组字符
问题:当我想知道在使用给定的语言环境时,哪个字符将用于十进制分组时,我必须查看哪里 我尝试了以下代码:javai18n:从何处获取区域设置的十进制分组字符,java,internationalization,Java,Internationalization,问题:当我想知道在使用给定的语言环境时,哪个字符将用于十进制分组时,我必须查看哪里 我尝试了以下代码: Locale locale = new Locale("Finnish", "fi"); DecimalFormat format = (DecimalFormat) DecimalFormat.getInstance(locale); System.out.println(format.format(12345678.123)); 这里的问题是,区域设置的参数似乎不正确,但无论如何,我认为
Locale locale = new Locale("Finnish", "fi");
DecimalFormat format = (DecimalFormat) DecimalFormat.getInstance(locale);
System.out.println(format.format(12345678.123));
这里的问题是,区域设置的参数似乎不正确,但无论如何,我认为一定有某个地方可以查找这些信息,而无需为其编写程序
当我在windows控制面板中更改德语字符时,似乎这些内容不是从我机器上的区域设置中获取的,但java程序中没有任何更改。编辑:问题是您构建
区域设置的方式。试试看:
Locale locale = new Locale("fi");
要回答如何以编程方式获取分隔符的问题,请使用:
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\uISO Code].class”,其中包含十进制分组字符和其他相关值,可以通过反编译查看这些文件。Java反编译器()在这方面非常有用。感谢您提供有关locale对象的提示!关于分组分隔符的问题是,我很好奇这些信息是从哪里检索到的。一定有某种文件存储在那里。我建议你看一下源代码——它非常方便,可以供检查:)