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