gpt4 book ai didi

Java:sv 和 sv_SE 语言环境有什么区别?

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:09:25 34 4
gpt4 key购买 nike

我尝试使用以下代码在使用瑞典语言环境的 java 中将字符串 (-0,3) 解析为 double :

String DoubleString = "-0,3"
NumberFormat swedishNumberFormat = NumberFormat.getInstance(new Locale("sv"));
System.out.println(swedishNumberFormat.parse(doubleString).doubleValue());

当我尝试使用 sv_SE 语言环境时,结果是 -3.0,这显然是不正确的。然后,在经历了很多的头痛之后,我将区域设置更改为sv(如上例所示),然后结果是正确的,-0,3。

根据 http://www.localeplanet.com/java/sv/index.htmlhttp://www.localeplanet.com/java/sv-SE/index.html两种情况下的小数点分隔符 (Decimalavgränsare) 都是逗号 (,) 那么为什么会有这种差异呢?

(我尝试用一​​些与瑞典相关的标签来标记它,例如 sv_SE 但我没有足够的声誉点数来添加新标签。如果可以,请随意添加标签。)

最佳答案

如果您尝试像 new Locale("sv_SE") 那样创建 Locale,那么它将无法通过用于检测语言的 ISO 639 标准来匹配它(是的如果只有一个参数被威胁为语言,请查看文档)。在您的情况下,您应该使用 new Locale("sv","SE") 正确设置国家/地区,否则,由于语言匹配失败,将使用默认语言(在您的情况下似乎是英语)。在英语中,逗号用于数字分组而不是小数点,这就是为什么您得到意外但正确的结果。

关于Java:sv 和 sv_SE 语言环境有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26252824/

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