1.引入工具类
<!-- 拼音 主要用于取名称首字母 --> <dependency> <groupId>com.belerweb</groupId> <artifactId>pinyin4j</artifactId> <version>2.5.0</version> </dependency>
2.工具类代码
2个方法:1中文转拼音;2.获取中文首字母
public class PinYinUtil {
/**
* 获取中文全拼
*
* @param name 需要转换的中文
* @return 全拼结果
**/
public static String getFull(String name) {
// 创建格式化对象
HanyuPinyinOutputFormat outputFormat = new HanyuPinyinOutputFormat();
//设置大小写格式
outputFormat.setCaseType(HanyuPinyinCaseType.LOWERCASE);
//设置声调格式
outputFormat.setToneType(HanyuPinyinToneType.WITHOUT_TONE);
// 放置输入结果
StringBuilder result = new StringBuilder();
// 字符数组
char[] charArray = name.toCharArray();
// 遍历字符
for (char c : charArray) {
// 中文会被变成全拼,非中文会被直接拼接在结果字符串中
if (Character.toString(c).matches("[\\u4E00-\\u9FA5]+")) {
String[] pinyinArray = new String[0];
try {
pinyinArray = PinyinHelper.toHanyuPinyinStringArray(c, outputFormat);
} catch (BadHanyuPinyinOutputFormatCombination badHanyuPinyinOutputFormatCombination) {
badHanyuPinyinOutputFormatCombination.printStackTrace();
}
if (pinyinArray != null) {
result.append(pinyinArray[0]);
}
} else {
result.append(c);
}
}
return result.toString();
}
/**
* 获取中文首字母
*
* @param name 需要转换的中文
* @return 首字母结果
**/
public static String getInitial(String name) {
// 创建格式化对象
HanyuPinyinOutputFormat outputFormat = new HanyuPinyinOutputFormat();
//设置大小写格式
outputFormat.setCaseType(HanyuPinyinCaseType.LOWERCASE);
//设置声调格式
outputFormat.setToneType(HanyuPinyinToneType.WITHOUT_TONE);
// 放置输入结果
StringBuilder result = new StringBuilder();
// 字符数组
char[] charArray = name.toCharArray();
// 遍历字符
for (char c : charArray) {
// 中文会被变成拼音首字母,非中文会被直接拼接在结果字符串中
if (Character.toString(c).matches("[\\u4E00-\\u9FA5]+")) {
String[] pinyinArray = new String[0];
try {
pinyinArray = PinyinHelper.toHanyuPinyinStringArray(c, outputFormat);
} catch (BadHanyuPinyinOutputFormatCombination badHanyuPinyinOutputFormatCombination) {
badHanyuPinyinOutputFormatCombination.printStackTrace();
}
if (pinyinArray != null) {
result.append(pinyinArray[0].charAt(0));
}
} else {
result.append(c);
}
}
return result.toString();
}
}