pinyin4j

    

pinyin4j是一個支持將簡體和繁體中文轉換到成拼音的Java開源類庫,做者是Li Min (xmlerlimin@gmail.com )。如下是一些具體的介紹和使用方式。java

 

  1. pinyin4j的官方下載地址http://sourceforge.net/projects/pinyin4j/files/,目前最新的版本是2.5.0api

  

 

  1. 下載解壓後的目錄結構及說明以下app

(1)     doc : pinyin4japi文檔測試

(2)     lib : pinyin4jjarspa

(3)     src : pinyin4j的源代碼.net

(4)     CHANGELOG.txt : pinyin4j的版本更新日誌命令行

(5)     COPYING.txt : LICENSE說明日誌

(6)     README.txt : pinyin4j的概要介紹code

 

 

  1. 運行GUI demoorm

命令行執行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 的ü  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 

 

  1. 字符串轉化成拼音Java代碼示例

 

[java:nogutter] view plaincopyprint?

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));  
    }  
      
}
    運行結果:我是中國人! I'm Chinese!           wŏ sh&igrave; zhōng gu&oacute; r&eacute;n ! I'm Chinese!
相關文章
相關標籤/搜索