需要用到pinyin4j-2.5.0.jar包。
废话不多说上代码。
packagecom.xxx.util; importnet.sourceforge.pinyin4j.PinyinHelper; importnet.sourceforge.pinyin4j.format.HanyuPinyinCaseType; importnet.sourceforge.pinyin4j.format.HanyuPinyinOutputFormat; importnet.sourceforge.pinyin4j.format.HanyuPinyinToneType; importnet.sourceforge.pinyin4j.format.HanyuPinyinVCharType; importnet.sourceforge.pinyin4j.format.exception.BadHanyuPinyinOutputFormatCombination; /*** 根据汉字获取拼音处理* @AuThor wangbyn*/publicclassGetPinyin { /*** 得到 全拼* @Param src* @return*/publicstaticStringgetPingYin(Stringsrc) { char[] t1=null; t1=src.toCharArray(); String[] t2=newString[t1.length]; HanyuPinyinOutputFormatt3=newHanyuPinyinOutputFormat(); t3.setCaseType(HanyuPinyinCaseType.LOWERCASE); t3.setToneType(HanyuPinyinToneType.WITHOUT_TONE); t3.setVCharType(HanyuPinyinVCharType.WITH_V); StringBuffert4=newStringBuffer(); intt0=t1.length; try { for (charc : t1) { // 判断是否为汉字字符if (Character.toString(c).matches( "[\\u4E00-\\u9FA5]+")) { t2=PinyinHelper.toHanyuPinyinStringArray(c, t3); t4.append(t2[0]); } else { t4.append(Character.toString(c)); } } returnt4.toString(); } catch (BadHanyuPinyinOutputFormatCombinatione1) { e1.printStackTrace(); } returnt4.toString(); } /*** 得到中文首字母* @param str* @return*/publicstaticStringgetPinYinHeadChar(Stringstr) { StringBufferconvert=newStringBuffer(); for (intj=0; j<str.length(); j++) { charword=str.charAt(j); String[] pinyinArray=PinyinHelper.toHanyuPinyinStringArray(word); if (pinyinArray!=null) { convert.append(pinyinArray[0].charAt(0)); } else { convert.append(word); } } returnconvert.toString(); } publicstaticvoidmain(String[] args) { StringcnStr="俺没有文化"; System.out.println(getPingYin(cnStr)); System.out.println(getPinYinHeadChar(cnStr)); } }
运行结果: