java - ICU4J - 相同的货币符号作为前缀或后缀,具体取决于区域设置

标签 java icu icu4j

我想正确放置 $ 符号,作为前缀或后缀,具体取决于使用 MessageFormat 类的区域设置,但到目前为止还没有成功。我需要本地化货币符号位置,但不是符号本身。

在我的消息中我使用:

The car cost is {0, number, currency}

我创建了一个 MessageFormat 调用的实例:

MessageFormat messageFormat = new MessageFormat(msg, locale);

结果是货币符号放置正确,但也根据使用的区域设置进行了更改。对于语言环境 en_us,我得到 $,对于语言环境 pl_pl,我得到 zł。

所以问题是,如何告诉MessageFormat始终使用相同的货币符号(在我的例子中为$),但根据区域设置将其(作为前缀或后缀)放置?

基于MessageFormat manual看起来 {0, number,currency} 是使用 NumberFormat.getCurrencyInstance(getLocale()) 格式化的,所以我想知道这是否可能。

预先感谢您的帮助。

最佳答案

事实证明这是可能的。 设置为美元货币的 CurrencyAmount 对象应作为参数传递给 MessageFormat 类的 format 方法。

关于java - ICU4J - 相同的货币符号作为前缀或后缀,具体取决于区域设置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56275513/

相关文章:

java - icu4j 返回货币代码而不是符号

android - 在库中使用时从 ICU4J 中剥离数据文件

java - add(element) 方法将数组中的每个元素更改为元素?

java - 如何从 java servlet 中的 POST 数据中分离出查询字符串参数

python - Python 中使用了哪种正则表达式风格?

ios - 为非标准语言环境本地化应用程序

unicode - 在 Dart 中处理字素簇

java - 使用 icu4j 将德语变音符号音译到他们的 DIN 5007-2 替代品中

java - NoSuchMethodError : scala. collection.mutable.Buffer$.empty()Lscala/collection/GenTraversable

java - 模拟/伪造存储库(或在没有 persistFormMap 的情况下填充 FormMap)