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

vojdkbi0  于 12个月前  发布在  Android
关注(0)|答案(3)|浏览(157)

我必须将英文数字转换成中文数字。但是中文数字系统与英文数字系统不同。有没有办法在运行时将英文数字转换成中文?

n9vozmp4

n9vozmp41#

而不是滚动自己的,最好使用ICU4JNumberFormat作为@mcdowell的答案。
唯一不同的是编号系统ID "hansfin"应该替换为"hans",如果你想转换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 陆万壹仟叁佰零伍
hantfin 陸萬壹仟參佰零伍


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

hsgswve4

hsgswve42#

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版进行测试。*
gzjq41n4

gzjq41n43#

如果是这样的话,我建议你为它建立一个哈希表。这并不难开始。我们知道中国的'数字'几乎是由以下定义的:参见:http://en.wikipedia.org/wiki/Chinese_numerals
有了这些,我认为你完全有能力在你的编程语言偏好java中构建一个表。

相关问题