pinyin4j學習

jopen 10年前發布 | 16K 次閱讀 常用工具包 Pinyin4j

1、首先下載pinyin4j的jar包,然后就可以開始使用了

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 Ping4jTest {

    //將漢字轉化為全拼
    public static String getPinyin(String src){
        char toChar[]=src.toCharArray();
        String[] toCharCp=new String[toChar.length];
        HanyuPinyinOutputFormat hanyuFormat=new HanyuPinyinOutputFormat();
        hanyuFormat.setCaseType(HanyuPinyinCaseType.LOWERCASE);
        hanyuFormat.setToneType(HanyuPinyinToneType.WITHOUT_TONE);
        hanyuFormat.setVCharType(HanyuPinyinVCharType.WITH_V);
        String ret="";
        int to=toChar.length;
        try {
            for(int i=0;i<to;i++){
                //判斷是否為漢字字符
                if(java.lang.Character.toString(toChar[i]).matches("[\\u4E00-\\u9FA5]+")){
                    toCharCp=PinyinHelper.toHanyuPinyinStringArray(toChar[i], hanyuFormat);
                    ret+=toCharCp[0];   
                }else{
                    ret=java.lang.Character.toString(toChar[i]);
                }
            }
        } catch (BadHanyuPinyinOutputFormatCombination e) {
            e.printStackTrace();
        }
        return ret;

    }

    //----------------------------------------返回中文的首字母--------------------
    public static String getPinYinHeadChar(String str){
        String convert="";
        for (int i = 0; i < str.length(); i++) {
            char word=str.charAt(i);
            String[] pinYinArray=PinyinHelper.toHanyuPinyinStringArray(word);
            if (pinYinArray!=null) {
                convert+=pinYinArray[0].charAt(0);

            }else {
                convert+=word;
            }
        }
        return convert;
    }

    //-------------------------將字符串轉換為ASCII碼-----------------------------
    public static String getCnASCII(String cnStr){
        StringBuffer strBuf=new StringBuffer();
        byte[] bGBK=cnStr.getBytes();

        for (int i = 0; i < bGBK.length; i++) {
            strBuf.append(Integer.toHexString(bGBK[i]&0xff));
        }
        return strBuf.toString();

    }

    //--------------------------測試拼音轉漢字是否正確----------------------------
    public static void main(String[] args){
        System.out.println(getPinyin("西安"));
        //返回拼音的全拼樣式
        System.out.println(getPinYinHeadChar("西安"));
        //返回拼音的首字母

        System.out.println(getCnASCII("西安"));
        //返回拼音的ASCII
        System.out.println();
        }

}

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!