Java從漢字到拼音 pinyin4j使用

2021-07-30 08:48:37 字數 1608 閱讀 8242

有時候,我們需要將漢字轉化成拼音,以方便查詢,如圖書系統中用拼音檢索書籍,以及通訊錄中快速查詢聯絡人等。乙個方法是使用map容器對,將漢字與拼音對應,如「中」對應「zhong」。但由於map的自身限制,在多音字如「重」可對應「chong」、「zhong」,這時候就會出現問題。

pinyin4j就是為了解決類似這樣的問題的。它是sourceforge.net上的乙個開源專案,功能非常強大。

pinyin4j的例項:

public static string convertertofirstspell(string chinese)  catch (badhanyupinyinoutputformatcombination e) 

} else

}return pinyinname;

}

先將string轉換成char,再統一將所有字元進行轉換

轉換方式為:

1. 字母大小寫設定

. setcasetype(hanyupinyincasetype.lowercase) 將拼音以小寫字母輸出

(上海 –>shanghai)

.setcasetype(hanyupinyincasetype.uppercase) 將拼音以大寫字母輸出

(上海 –>shanghai)

2.拼音音調設定

. settonetype(hanyupinyintonetype.without_tone) 無音調顯示

( 劉–>liu)

.settonetype(hanyupinyintonetype.with_tone_number)用數字表示聲調

( 劉–>liu4)

. settonetype(hanyupinyintonetype.with_tone_mark) 用聲調符表示

( 劉–> liú )

3.多音字輸出(僅在存在多音字情況下)

例如:「重」可輸出為

.tohanyupinyinstringarray(namechar[i], defaultformat)[0] –>zhong

.tohanyupinyinstringarray(namechar[i], defaultformat)[1] –>chong

4.特殊拼音輸出格式

例如:「綠」可輸出為

.setvchartype(hanyupinyinvchartype.with_u_and_colon) –> lu:

.setvchartype(hanyupinyinvchartype.with_u_unicode) –>lü

.setvchartype(hanyupinyinvchartype.with_v) –> lv

5.拼音特定位

例如:「重」可輸出為

.tohanyupinyinstringarray(namechar[i], defaultformat)[0].charat(0) –>z

.tohanyupinyinstringarray(namechar[i], defaultformat)[0].charat(1) –>h

.tohanyupinyinstringarray(namechar[i], defaultformat)[0].charat(2) –>o

Java下將漢字轉換為拼音的包pinyin4j

pinyin4j 主要特性 1.將簡體中文轉換成漢語拼音 2.支援多種發音 3.多種輸出格式 3.1.大小寫轉換 3.2.v 或 u 或 unicode 3.3.有音調 demo defautlt output format system.out.println defautlt output fo...

Java下將漢字轉換為拼音的包pinyin4j

pinyin4j 主要特性 1.將簡體中文轉換成漢語拼音 2.支援多種發音 3.多種輸出格式 3.1.大小寫轉換 3.2.v 或 u 或 unicode 3.3.有音調 demo defautlt output format system.out.println defautlt output fo...

Java下將漢字轉換為拼音的包pinyin4j

pinyin4j 主要特性 1.將簡體中文轉換成漢語拼音 2.支援多種發音 3.多種輸出格式 3.1.大小寫轉換 3.2.v 或 u 或 unicode 3.3.有音調 demo defautlt output format system.out.println defautlt output fo...