pinyin4j学习

jopen 10年前

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();    }    }