Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
javai18n:从何处获取区域设置的十进制分组字符_Java_Internationalization - Fatal编程技术网

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对象的提示!关于分组分隔符的问题是,我很好奇这些信息是从哪里检索到的。一定有某种文件存储在那里。我建议你看一下源代码——它非常方便,可以供检查:)