package com.roboo.like.google.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; /** * 描述: * 修改人: 李波 * 修改日期:2013-1-29 * 修改时间:上午11:47:10 */ public class PinYinUtils { /*** * * @param str:中文名称 * * @param format * :输出格式,字母大写 * @return:返回中文城市名称的的首个汉字的字母 */ public static String getPinYinHeadChar(String str, HanyuPinyinOutputFormat format) { char word = str.charAt(0); String convert = ""; if (java.lang.Character.toString(word).matches("[\\u4E00-\\u9FA5]+")) { String[] pinyinArray = null; try { pinyinArray = PinyinHelper.toHanyuPinyinStringArray(word, format); if (pinyinArray != null) { convert += pinyinArray[0].charAt(0); } else { convert += word; } return convert; } catch (BadHanyuPinyinOutputFormatCombination e) { e.printStackTrace(); } } else { return str.toUpperCase(); } return ""; } /** * 汉字转换位汉语拼音,英文字符不变 * @param chines 汉字 * @return 拼音 */ public static String converterToSpell(String chines){ String pinyinName = ""; char[] nameChar = chines.toCharArray(); HanyuPinyinOutputFormat defaultFormat = new HanyuPinyinOutputFormat(); defaultFormat.setCaseType(HanyuPinyinCaseType.LOWERCASE); defaultFormat.setToneType(HanyuPinyinToneType.WITHOUT_TONE); for (int i = 0; i < nameChar.length; i++) { if (nameChar[i] > 128) { try { String[] tmp = PinyinHelper.toHanyuPinyinStringArray(nameChar[i], defaultFormat); if(null != tmp) { pinyinName +=tmp[0]; } } catch (BadHanyuPinyinOutputFormatCombination e) { e.printStackTrace(); } }else{ pinyinName += nameChar[i]; } } return pinyinName; } }