有時候,我們需要將漢字轉化成拼音,以方便查詢,如圖書系統中用拼音檢索書籍,以及通訊錄中快速查詢聯絡人等。乙個方法是使用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...