80,360
社区成员
发帖
与我相关
我的任务
分享
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.HanyuPinyinVCharType;
import net.sourceforge.pinyin4j.format.exception.BadHanyuPinyinOutputFormatCombination;
/**
* 获得字符串中汉字的首拼音,如果不是汉字就原样返回, 如果有符号就去掉
* @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]+", "");
}