检测自定义小数点分隔符

时间:2015-06-30 15:23:03

标签: java windows locale decimalformat

在Windows上,我可以设置自定义小数点分隔符而不更改我的国家/地区或语言设置。这是通过这个小对话框完成的: enter image description here

我的语言和国家/地区的标准分隔符为,,我将其更改为.

在.NET上,系统会自动选择自定义分隔符:

// Prints .
Console.WriteLine(CultureInfo.CurrentCulture.NumberFormat.NumberDecimalSeparator[0]);

另一方面,在Java中,它没有被选中:

// Prints ,
System.out.println(DecimalFormatSymbols.getInstance().getDecimalSeparator());

如何在Java中检测自定义小数分隔符?

编辑:当我将数字格式更改为特定语言的预先存在的格式时,它将被Java拾取并由我的示例中的代码打印。只有当我将分隔符修改为自定义分隔符时,它才会进行纠察。

1 个答案:

答案 0 :(得分:1)

使用solution2 = fittestBy sum 的替代构造函数设置区域设置,我猜你的情况是德语。这里有JAVA7JAVA8 API。

  

为给定的区域设置创建solution3 = fittestBy product 对象。此构造函数只能为Java运行时环境支持的语言环境构造实例,而不能为已安装的DecimalFormatSymbolsProvider实现支持的语言环境构造实例。对于完整的语言环境覆盖,请使用getInstance方法。

DecimalFormatSymbols

当然,您可以使用DecimalFormatSymbols获取计算机区域设置。

更新:
当您要求使用C ++中的Windows自定义十进制sep ...时,您可以得到它:

DecimalFormatSymbols dfs = new DecimalFormatSymbols( Locale.GERMAN );
System.out.println( dfs.getDecimalSeparator() );

我在Java中尝试使用此代码片段...但找不到它......

Locale.getDefault()

对不起......今天再也没有时间......希望有所帮助...