| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 |
- 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(":","");
- }
- }
|