Import pinyin4j before using the jar package to the project:
<dependency> <groupId>com.belerweb</groupId> <artifactId>pinyin4j</artifactId> <version>2.5.0</version> </dependency>
Here, the packaged tools:
package utils; 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.exception.BadHanyuPinyinOutputFormatCombination; /** * * Created by zengxm on 2014/12/4. */ public class PinyinUtils { HanyuPinyinOutputFormat format = null; public static enum Type { UPPERCASE, // all caps LOWERCASE, // all lowercase FIRSTUPPER, // initials ONLYFIRSTCHAR // only the first letter - capital } static PinyinUtils = Record new new PinyinUtils (); public PinyinUtils () { format = new HanyuPinyinOutputFormat(); format.setCaseType(HanyuPinyinCaseType.UPPERCASE); format.setToneType(HanyuPinyinToneType.WITHOUT_TONE); } // capitalized tian tomorrow --Ming public static String toPinYinFirstUpper (String str, String Spera) { String pinYin; try { pinYin = record.toPinYin(str, spera, Type.FIRSTUPPER); if("0123456789".contains(pinYin)) { pinYin = numBerToPinyin(pinYin); } return pinYin; } catch (BadHanyuPinyinOutputFormatCombination e) { return ""; } } // ALL CAPS tomorrow --MINGTIAN public static String toPinYin (String str, String Spera) { String pinYin; try { pinYin = record.toPinYin(str, spera, Type.UPPERCASE); return pinYin; } catch (BadHanyuPinyinOutputFormatCombination e) { return ""; } } // contains only the first letter capitalized tomorrow - MT public static String OnlyFirstChar_Upper (String str) { String pinYin; try { pinYin = record.toPinYin(str, " ", Type.FIRSTUPPER); if(pinYin.length() == 0) { return ""; } String[] array = pinYin.split(" "); String firstchar = ""; for(String ste : array) { if(ste.length() >0) { firstchar += ste.substring(0,1).toUpperCase(); } } return firstchar; } catch (BadHanyuPinyinOutputFormatCombination e) { return ""; } } /** * Str converted into phonetic, if not no corresponding kanji or pinyin, the conversion is not as * Such as: convert MINGTIAN tomorrow * @Param Cycle * @Param rough * @return * @throws BadHanyuPinyinOutputFormatCombination */ public String toPinYin(String str, String spera, Type type) throws BadHanyuPinyinOutputFormatCombination { if(str == null || str.trim().length()==0) { return ""; } if(type == Type.UPPERCASE) { format.setCaseType(HanyuPinyinCaseType.UPPERCASE); }else { format.setCaseType(HanyuPinyinCaseType.LOWERCASE); } String py = ""; String temp = ""; String[] t; for(int i=0;i<str.length();i++){ char c = str.charAt(i); if((int)c <= 128) { py + = c; }else{ t = PinyinHelper.toHanyuPinyinStringArray (c format); if (t == null ) { py + = c; }else{ temp = t[0]; if(type == Type.FIRSTUPPER) { temp = t[0].toUpperCase().charAt(0)+temp.substring(1); } py += temp+(i==str.length()-1?"":spera); } } } return py.trim(); } public static String getFirstSpell(String chinese) { StringBuffer pybf = new StringBuffer(); char[] arr = chinese.toCharArray(); HanyuPinyinOutputFormat defaultFormat = new HanyuPinyinOutputFormat(); defaultFormat.setCaseType(HanyuPinyinCaseType.LOWERCASE); defaultFormat.setToneType(HanyuPinyinToneType.WITHOUT_TONE); for (int i = 0; i < arr.length; i++) { if (arr[i] > 128) { try { String[] temp = PinyinHelper.toHanyuPinyinStringArray(arr[i], defaultFormat); if (temp != null) { pybf.append(temp[0].charAt(0)); } } catch (BadHanyuPinyinOutputFormatCombination e) { e.printStackTrace (); } } else { pybf.append(arr[i]); } } return pybf.toString().replaceAll("\\W", "").trim(); } // number into a corresponding phonetic public static String numBerToPinyin (String STR) { String pinyin = null; switch (str) { case "0": pinyin = "Z"; break; case "1": pinyin = "Y"; break; case "2": pinyin = "E"; break; case "3": pinyin = "S"; break; case "4": pinyin = "S"; break; case "5": pinyin = "W"; break; case "6": pinyin = "L"; break; case "7": pinyin = "Q"; break; case "8": pinyin = "B"; break; case "9": pinyin = "J"; break; } return pinyin; } public static void main(String[] args) throws BadHanyuPinyinOutputFormatCombination { System.out.println(toPinYinFirstUpper("赵波蓝"," ")); } }