package com.uas.eis.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; public class PinyinUtils { private static final HanyuPinyinOutputFormat FORMAT = new HanyuPinyinOutputFormat(); static { FORMAT.setCaseType(HanyuPinyinCaseType.LOWERCASE); FORMAT.setToneType(HanyuPinyinToneType.WITHOUT_TONE); } /** * 中文姓名转拼音缩写(首字符全拼+后续字符首字母) * @param chineseName 中文姓名 * @return 拼音缩写(小写) */ public static String getCustomPinyin(String chineseName) { if (chineseName == null || chineseName.trim().isEmpty()) { return ""; } StringBuilder pinyin = new StringBuilder(); char[] chars = chineseName.trim().toCharArray(); try { // 处理第一个字符:全拼 if (chars.length > 0) { String[] firstCharPinyin = PinyinHelper.toHanyuPinyinStringArray(chars[0], FORMAT); if (firstCharPinyin != null && firstCharPinyin.length > 0) { pinyin.append(firstCharPinyin[0]); } } // 处理后续字符:首字母 for (int i = chars.length > 0 ? 1 : 0; i < chars.length; i++) { String[] charPinyin = PinyinHelper.toHanyuPinyinStringArray(chars[i], FORMAT); if (charPinyin != null && charPinyin.length > 0) { pinyin.append(charPinyin[0].charAt(0)); }else { pinyin.append(chars[i]); } } } catch (BadHanyuPinyinOutputFormatCombination e) { e.printStackTrace(); } return pinyin.toString().replace(":",""); } }