2011-06-03 29 views
2

我必須將英文數字轉換爲中文數字。但是中國數字系統與英語不同。我有任何方法可以將英文數字在運行時轉換爲中文。如何將英文數字轉換爲java中的中文

謝謝。 Vikram

+0

你是在給英文單詞'one'建議英文單詞'one'嗎? – 2011-06-03 07:28:39

+0

[「中文數字」](http://en.wikipedia.org/wiki/Chinese_numerals)並不完全清楚。如果你不知道中國是巨大的。 – Reno 2011-06-03 07:29:34

+0

@Gary:我認爲它可能會將'1010'轉換爲'一千零一十' – Joey 2011-06-03 07:30:32

回答

0

在這種情況下,我建議你爲它建立一個哈希表。 從一開始就不難。 我們知道,中國的「數字」是幾乎被定義爲: 參見:

就這樣,我覺得你比能夠在你的編程郎偏好,JAVA建立一個表的更多。

2

ICU4J支持這個功能:

Locale chineseNumbers = new Locale("[email protected]=hansfin"); 
com.ibm.icu.text.NumberFormat formatter = 
    com.ibm.icu.text.NumberFormat.getInstance(chineseNumbers); 
System.out.println(formatter.format(100)); 

測試了4.8版本。

2

作爲@ mcdowell的回答,建議使用ICU4JNumberFormat作爲回答。

唯一不同的是編號系統ID "hansfin""hans"被替換如果您希望轉換成61305"六萬一千三百零五"

Locale chineseNumbers = new Locale("[email protected]=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是「漢簡」(即簡體中國)的縮寫,而hant是「韓傳統」(即中國傳統)和fin是「財經」。

相關問題