gpt4 book ai didi

java - 检测自定义小数点分隔符

转载 作者:行者123 更新时间:2023-12-01 11:21:47 25 4
gpt4 key购买 nike

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

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

在 .NET 上,自定义分隔符由系统选取:

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

另一方面,在 Java 中它不会被拾取:

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

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

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

最佳答案

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

Create a DecimalFormatSymbols object for the given locale. This constructor can only construct instances for the locales supported by the Java runtime environment, not for those supported by installed DecimalFormatSymbolsProvider implementations. For full locale coverage, use the getInstance method.

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

当然,您可以使用Locale.getDefault()获取计算机区域设置。

更新:
当您在 C++ 中询问 Windows 自定义小数点...时,您可以得到如下结果:

TCHAR szSep[8];
GetLocaleInfo(LOCALE_USER_DEFAULT, LOCALE_SDECIMAL, szSep, 8);

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

public static void main(String[] args) {
RuntimeMXBean runtimeBean = ManagementFactory.getRuntimeMXBean();

Map<String, String> systemProperties = runtimeBean.getSystemProperties();
Set<String> keys = systemProperties.keySet();

System.out.println("HAY: " + systemProperties.get("LOCALE_USER_DEFAULT"));
System.out.println("HAY: " + systemProperties.get("LOCALE_SDECIMAL"));

for (String key : keys) {
String value = systemProperties.get(key);
System.out.printf("[%s] = %s.\n", key, value);
}

}

抱歉...今天没有时间...希望有帮助...

关于java - 检测自定义小数点分隔符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31142331/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com