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