4

我正在尝试在fa_IR语言环境中显示数字。
我正在使用这段代码:

NumberFormat.getNumberInstance(new Locale("fa","IR")).format(myNum);

但这会打印英文 ( en_US) 数字。
如何在 Java 的特定语言环境中显示数字?


示例:
例如,如果myNum12输出应该是۱۲


编辑:
似乎java.text.NumberFormat不支持fa_IR语言环境(?)。
改用com.​ibm.​icu.​text.​NumberFormat,解决问题!

4

3 回答 3

7

如您所知,Oracle(或者最好说Java 编程语言)不直接支持波斯语,为了获得波斯语(或阿拉伯语)数字格式,您可以使用以下代码:

NumberFormat numberFormat = NumberFormat.getNumberInstance(new Locale.Builder().setLanguageTag("ar-SA-u-nu-arab").build());
System.out.println(numberFormat.format(1234567890));

输出将是这样的: ۱،۲۳۴،۵۶۷،۸۹۰ 正如您所看到的,通过使用这种代码,您的输出编号不仅将采用波斯风格,而且其每三个数字将被分组并由“,”字符分隔。

于 2015-04-15T06:12:51.317 回答
5

试试这个代码:

NumberFormat nf = NumberFormat.getNumberInstance(new Locale("fa"));
System.out.println(nf.format(1234567890));

输出:

۱۲۳٬۴۵۶٬۷۸۹
于 2018-12-05T08:32:03.990 回答
0

尝试这个:

String.format(new Locale("fa"), "%d", 123456)
于 2019-05-14T07:22:46.570 回答