package com.sprucetec.tms.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;import org.apache.commons.lang.StringUtils;/** * 描述: 拼音工具類 * * @author yangweiqiang * @date 2016/8/9 */public class PinYinUtils { /** * 獲取漢字串拼音首字母,英文字符不變 * * @param chinese 漢字串 * @param caseType 大寫 or 小寫 * @return 漢語拼音首字母 */ public static String getFirstSpell(String chinese, HanyuPinyinCaseType caseType) { if (StringUtils.isBlank(chinese)) { return null; } StringBuffer sb = new StringBuffer(); char[] arr = chinese.toCharArray(); HanyuPinyinOutputFormat defaultFormat = new HanyuPinyinOutputFormat(); defaultFormat.setCaseType(caseType); 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) { sb.append(temp[0].charAt(0)); } } catch (BadHanyuPinyinOutputFormatCombination e) { e.printStackTrace(); } } else { sb.append(arr[i]); } } return sb.toString().replaceAll("\\W", "").trim(); }}