当前位置: 首页 > 面试题库 >

用Java在外国语言环境中格式化货币

熊博远
2023-03-14
问题内容

我正在竭尽全力找到一种使用Java在各种语言环境中格式化外币的方法,这些语言不是默认设置。我发现了java.util.Currency,它可以表示用于各种语言环境的正确符号。也就是说,对于美元,它在美国为我提供了美元符号,在其他国家为我提供了美元或美元的符号。另外,我还找到了java.text.NumberFormat,它将为特定语言环境格式化货币。我的问题-
util.Currency将提供适当的符号和代码来表示其非默认语言环境中的货币,但不会以任何特定于语言环境的方式来格式化货币。NumberFormat假设我通过语言环境传递的数字是该语言环境的货币
而不是外币。

例如,如果我使用getCurrencyInstance(Locale.GERMANY)然后格式化(1000),则假定我正在格式化1000欧元。实际上,我可能需要美元,日元或任何其他货币的正确的德语本地化表示形式(正确的小数点和千位分隔符,是否在金额之前或之后放置符号)。到目前为止,我能得出的最好的结果是使用NumberFormat格式化数字,然后在输出中搜索非数字字符,并将其替换为从util.Currency派生的符号。但是,这非常脆弱,对于我的目的而言可能不够可靠。有想法吗?任何帮助深表感谢。


问题答案:

尝试在getCurrencyInstance(Locale.GERMANY)返回的实例上使用setCurrency

损坏

java.text.NumberFormat format = java.text.NumberFormat.getCurrencyInstance(java.util.Locale.GERMANY);
System.out.println(format.format(23));

输出:23,00€

固定的

java.util.Currency usd = java.util.Currency.getInstance("USD");
java.text.NumberFormat format = java.text.NumberFormat.getCurrencyInstance(java.util.Locale.GERMANY);
format.setCurrency(usd);
System.out.println(format.format(23));

输出:23,00 USD



 类似资料:
  • 在本例中,我们根据美国区域设置和丹麦语区域设置格式化货币。 文件:IOTester.java - 执行上面示例代码,得到以下结果 -

  • 问题内容: 我住在比利时。通常,在数学中,我们用这样的逗号来写小数:3,141592 这也是 格式化 浮点数时的结果。 因此,通过替换像这样:。因此,总是在需要一个点时,我必须添加以下内容: 因此,问题是:有没有一种方法可以更改语言环境,从而使Java中的每个格式化程序都使用点而不是逗号? 谢谢 版画 问题答案: 尝试仅用于设置格式化期间使用的语言环境。

  • 在我当前的项目中,我将货币值存储为表示美分数的。但是,当用户在文本字段中输入此值时,他们很可能希望将其输入为十进制值。此外,如果用户不手动输入,我想在前面加上一个美元符号。我如何利用为我完成大部分工作?或者是否有其他解决方案使用预先存在的Swing组件,这样我就不必通过手动编码来重新发明轮子?

  • 问题内容: 可以使用特定格式在Java 8中格式化: 假设这将导致: 如您所见,Java决定使用哪个定界符(“-”,“。”,“ /”,“”等)以及如何对日期元素进行排序(例如,在某些语言环境中是月日,反之亦然,等等)可能是那一年来的第一,等等。 我的问题是: 如何格式化和取决于上面的示例? 根据示例,我希望得到这样的结果… …用于: …用于: 当然,可能还有其他使用完全不同的定界符和顺序的。 谢谢

  • 我在我的应用程序中使用日期格式化程序来显示一些日期。但我希望这个日期以阿拉伯语显示。所以我试图像这样改变格式化程序的区域设置: 但它不起作用。。 如果我改成这样: 会工作正常...但我希望日期显示在阿拉伯语... 如何做到这一点?我希望日期是例如١١ يناير ٢٠١٨..怎么办?

  • 问题内容: 我在Java语言环境中发现了许多缺少的国家/地区-如果我打印出可用语言环境的列表, 我缺少许多国家,包括尼日利亚,伊朗,吉尔吉斯斯坦和巴基斯坦。任何人都可以对此进行说明,或者是否有更好(更全面)的方法来获取Java国家列表? 1.6.0_16-b01 问题答案: 世界上的国家和地区之间没有一对一的映射。语言环境指定区域。它们旨在标记诸如语言多样性之类的东西。只是一个明确的例子:印度,斯