如何在java中将英文数字转换为中文

时间:2011-06-03 07:23:38

标签: java android

我必须将英文数字转换为中文数字。但是中国的数字系统与英语不同。我有办法转换英文编号在运行时转换为中文。

谢谢。  维克拉姆

3 个答案:

答案 0 :(得分:2)

ICU4J支持此:

Locale chineseNumbers = new Locale("en_US@numbers=hansfin");
com.ibm.icu.text.NumberFormat formatter =
    com.ibm.icu.text.NumberFormat.getInstance(chineseNumbers);
System.out.println(formatter.format(100));

使用4.8版进行测试。

答案 1 :(得分:2)

建议您使用ICU4J NumberFormat作为@ mcdowell的答案,而不是自己动手。

如果您希望将"hansfin"转换为"hans",则唯一不同的是编号系统ID 61305应替换为"六万一千三百零五"

Locale chineseNumbers = new Locale("C@numbers=hans");
com.ibm.icu.text.NumberFormat formatter =
    com.ibm.icu.text.NumberFormat.getInstance(chineseNumbers);
System.out.println(formatter.format(61305));

以下是不同编号系统ID的结果。

hans    六万一千三百零五
hant    六萬一千三百零五
hansfin 陆万壹仟叁佰零伍
hansfin 陸萬壹仟參佰零伍

hans是“Han Simplified”(即简体中文)的缩写,而hant是“Han Traditional”(即繁体中文),fin是“Finance” ”

答案 2 :(得分:0)

在那种情况下, 我建议你为它构建一个哈希表。 开始并不困难。 我们知道中国的“数字”几乎被定义为: 请参阅:http://en.wikipedia.org/wiki/Chinese_numerals

有了这个,我认为你有能力在你的编程语言首选项java中构建一个表。