gpt4 book ai didi

Java 覆盖特定语言环境的语言环境设置

转载 作者:搜寻专家 更新时间:2023-10-31 20:29:40 24 4
gpt4 key购买 nike

我正在使用 NumberFormat.getCurrencyInstance().format(amount) 将货币从 BigDecimal 格式化为字符串。这按预期工作,问题是我们的主要目标是荷兰市场,默认的荷兰语格式很奇怪。

让我解释一下,当格式化 -125 时,我得到荷兰语的“€ 125-”(预期为“-€125”)。英国按预期工作,给予“-£125.50”。

我可以检查语言环境是否为荷兰语,然后在每次我想要格式化小数时提供一个模式。但我更喜欢覆盖荷兰语格式设置的解决方案。我在想类似下面的事情:

Locale nlLocale = new Locale("nl", "NL");
NumberFormat.getCurrencyInstance(new Locale("nl", "NL")).setFormatPattern("€ #");

因此,每次我在格式化时使用荷兰语语言环境时,我都会得到我的自定义格式。是否存在类似的解决方案?

最佳答案

撇开该特定格式是否“正确”的问题不谈,更改“nl”区域设置的货币实例的方法是实现和配置自定义 LocaleServiceProvider用于数字格式服务。 (提供者类需要子类化 NumberFormatProvider ,但父类(super class) javadoc 解释了如何配置提供者。)

提供者需要为您关注的特定情况返回一个非标准的 NumberFormat 实例,但在其他情况下(可能)委托(delegate)给默认提供者。

关于Java 覆盖特定语言环境的语言环境设置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13099073/

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