你是不是想要得到汉字的拼音首字母,有一个专门的jar包的呀
引入这个jar包,写段代码就好了呀:
/**
 * 获得字符串中汉字的首拼音,如果不是汉字就原样返回, 如果有符号就去掉
 * @param src 
 * @return String
 * */
public static String getFirstPinyin(String src) {
return getFirstPy(src).replaceAll("[^a-z0-9]+", "");
}

/**
 * 获得字符串中汉字的首拼音,如果不是汉字就原样返回, 保留符号
 * @param src 
 * @return String
 * */
public static String getFirstPy(String src) {
if (isBlank(src)) {return "";}
char[] t1 = null;
t1 = src.toCharArray();
String[] t2 = new String[t1.length];
HanyuPinyinOutputFormat t3 = new HanyuPinyinOutputFormat();
t3.setCaseType(HanyuPinyinCaseType.LOWERCASE);
t3.setToneType(HanyuPinyinToneType.WITHOUT_TONE);
t3.setVCharType(HanyuPinyinVCharType.WITH_V);
String t4 = "";
int t0 = t1.length;
try {
for (int i = 0; i < t0; i++) {
// 判断是否为汉字字符
if (Character.toString(t1[i]).matches("[\\u4E00-\\u9FA5]+")) {
t2 = PinyinHelper.toHanyuPinyinStringArray(t1[i], t3);
t4 += t2[0].substring(0, 1);
} else {
t4 += Character.toString(t1[i]);
}
}
} catch (BadHanyuPinyinOutputFormatCombination e1) {
log.error("获得字符串中汉字的首拼音", e1);
}
return t4;
}

/**
 * 获得字符串中汉字的全拼,如果不是汉字就原样返回
 * @param src 
 * @return String
 * */
public static String getFullPinyin(String src) {
if (isBlank(src)) {return "";}
char[] t1 = null;
t1 = src.toCharArray();
String[] t2 = new String[t1.length];
HanyuPinyinOutputFormat t3 = new HanyuPinyinOutputFormat();
t3.setCaseType(HanyuPinyinCaseType.LOWERCASE);
t3.setToneType(HanyuPinyinToneType.WITHOUT_TONE);
t3.setVCharType(HanyuPinyinVCharType.WITH_V);
String t4 = "";
int t0 = t1.length;
try {
for (int i = 0; i < t0; i++) {
// 判断是否为汉字字符
if (Character.toString(t1[i]).matches("[\\u4E00-\\u9FA5]+")) {
t2 = PinyinHelper.toHanyuPinyinStringArray(t1[i], t3);
t4 += t2[0];
} else {
t4 += Character.toString(t1[i]);
}
}
} catch (BadHanyuPinyinOutputFormatCombination e1) {
log.error("获得字符串中汉字的全拼", e1);
}
return t4.replaceAll("[^a-z0-9]+", "");
}