Java漢字轉拼音庫,Pinyin4j入門教程
pinyin4j是一個支持將簡體和繁體中文轉換到成拼音的Java開源類庫,作者是Li Min (xmlerlimin@gmail.com)。以下是一些具體的介紹和使用方式。
1. pinyin4j的官方下載地址http://sourceforge.net/projects/pinyin4j/files/,目前最新的版本是2.5.0
2. 下載解壓后的目錄結構及說明如下
(1) doc : pinyin4j的api文檔
(2) lib : pinyin4j的jar包
(3) src : pinyin4j的源代碼
(4) CHANGELOG.txt: pinyin4j的版本更新日志
(5) COPYING.txt: LICENSE說明
(6) README.txt : pinyin4j的概要介紹
3. 運行GUI demo
命令行執行cd ${pinyin-install-dir}/lib,進入到pinyin4j-2.5.0.jar所在的目錄,敲入java -jar pinyin4j-2.5.0.jar執行,GUI界面如下:
上圖是輸入漢字“中”,執行Convert to Pinyin后的截圖。Format后有三個下拉框,第一個下拉框有三個選項,用來控制生成的拼音聲調的顯示方式,三個方式及其效果如下(以漢字“中”,選中Formatted hanyu Pinyin選項卡測試):
WITH_TONE_NUMBER(以數字代替聲調) : zhong1 zhong4
WITHOUT_TONE(無聲調) : zhong zhong
WITH_TONE_MARK (有聲調) : zhōng zhòng
第二個下拉框是碰到unicode的ü 、v和 u時的顯示方式,共有三個方式, 以下是以聲調為WITH_TONE_NUMBER方式顯示漢字“呂”示例:
WITH_U_AND_COLON : lu:3
WITH_V: lv3
WITH_U_UNICODE : lü3
第三個下拉框是控制生成的拼音是以大寫方式顯示還是以小寫方式顯示,以漢字“國”示例如下:
LOWERCASE :guó
UPPERCASE :GUó
上圖的漢字轉化成拼音后,有六種顯示方式,這是因為pinyin4j支持將漢字轉化成六種拼音表示法。其對應關系是:漢語拼音-Hanyu Pinyin,通用拼音-Tongyong Pinyin,威妥瑪拼音(威瑪拼法)-Wade-Giles Pinyin, 注音符號第二式-MPSII Pinyin,耶魯拼法-Yale Pinyin和國語羅馬字-Gwoyeu Romatzyh。
4. 字符串轉化成拼音Java代碼示例
代碼:
package testcase;import net.sourceforge.pinyin4j.PinyinHelper; import net.sourceforge.pinyin4j.format.HanyuPinyinCaseType; import net.sourceforge.pinyin4j.format.HanyuPinyinOutputFormat; import net.sourceforge.pinyin4j.format.HanyuPinyinToneType; import net.sourceforge.pinyin4j.format.HanyuPinyinVCharType; import net.sourceforge.pinyin4j.format.exception.BadHanyuPinyinOutputFormatCombination;
public class PinYinUtil {
public static String getPinYin(String inputString) { HanyuPinyinOutputFormat format = new HanyuPinyinOutputFormat(); format.setCaseType(HanyuPinyinCaseType.LOWERCASE); format.setToneType(HanyuPinyinToneType.WITH_TONE_MARK); format.setVCharType(HanyuPinyinVCharType.WITH_U_UNICODE); char[] input = inputString.trim().toCharArray(); StringBuffer output = new StringBuffer(""); try { for (int i = 0; i < input.length; i++) { if (Character.toString(input[i]).matches("[\u4E00-\u9FA5]+")) { String[] temp = PinyinHelper.toHanyuPinyinStringArray(input[i], format); output.append(temp[0]); output.append(" "); } else output.append(Character.toString(input[i])); } } catch (BadHanyuPinyinOutputFormatCombination e) { e.printStackTrace(); } return output.toString(); } public static void main(String[] args) { String chs = "我是中國人! I'm Chinese!"; System.out.println(chs); System.out.println(getPinYin(chs)); }</pre> <p></p>
運行結果:我是中國人! I'm Chinese!
w? shì zhōng guó rén ! I'm Chinese!
附件:
1.各種拼音說明
Yale Pinyin是在第二次世界大戰期間由美國軍方發明的編碼系統,主要為了讓在中國地區作戰的美軍士兵能夠快速地熟悉漢語發音,能夠向當地人請求幫助,可以說這是一個速成教材,它的目的甚至不是用來互相交流而是使士兵在發音時不會被中國人聽錯就可以了。
Gwoyeu Romatzyh:即國語羅馬字,它是由林語堂提議建立的,在1928年由國民政府大學堂頒布推行。在中國的臺灣省這一編碼體系得到了保留,但是它就像 Yale一樣現在幾乎很少有人使用,在1986年,國語羅馬字被國語注音符號第二式(MPSII)所取代,在2002年,又被通用拼音(Tongyong Pinyin)取代,成為臺灣今天正式的官方漢語音譯編碼體系。
威妥瑪拼音,習慣稱作威妥瑪拼法或威瑪式拼音、韋氏拼音、威翟式拼音,是一套用于拼寫中文普通話的羅馬拼音系統。19世紀中葉由英國人威妥瑪(Thomas Francis Wade)發明,后由翟理斯(Herbert Allen Giles)完成修訂,并編入其所撰寫的漢英字典。
參考資料:
1. pinyin4j的官方資料
2. 漢語言的羅馬化
http://icookies.spaces.live.com/blog/cns!2CC37E2F87FB3864!170.entry
3. Wiki:威妥瑪拼音(維基百科)
http://wapedia.mobi/zh/%E5%A8%81%E5%A6%A5%E7%8E%9B%E6%8B%BC%E9%9F%B3
來自:http://blog.csdn.net/hfhwfw/article/details/6030816