1、引入包
<!-- 汉语转拼音-->
<dependency>
<groupId>com.belerweb</groupId>
<artifactId>pinyin4j</artifactId>
<version>2.5.0</version>
</dependency>
2、具体的使用
主要是HanyuPinyinOutputFormat的使用,修改拼音的输入格式
/**
* 将中文转成拼音。如果是多音字,默认取第一个发音(可能跟实际姓名中的发音不符)
* @param hanzi 中文字符串
* @return
*/
private String hanziToPinyin(String hanzi) {
// 如果你需要转换整个字符串的所有汉字为拼音,可以使用以下方式:
StringBuilder pinyinBuilder = new StringBuilder();
//定义拼音的输出格式
HanyuPinyinOutputFormat pinyinOutputFormat = new HanyuPinyinOutputFormat();
pinyinOutputFormat.setCaseType(HanyuPinyinCaseType.LOWERCASE); // 小写
pinyinOutputFormat.setToneType(HanyuPinyinToneType.WITHOUT_TONE); // 不带声调(带声调的格式是:zhang1,不带声调格式是:zhang)
try {
for (char ch : hanzi.toCharArray()) {
String[] pinyinArray = PinyinHelper.toHanyuPinyinStringArray(ch, pinyinOutputFormat);
if (pinyinArray != null && pinyinArray.length > 0) {
pinyinBuilder.append(pinyinArray[0]); // 取第一个发音,如果有多个发音,可以根据需要选择使用哪个
} else {
pinyinBuilder.append(ch); // 如果不是汉字,直接添加到结果中
}
}
} catch (BadHanyuPinyinOutputFormatCombination e) {
log.info("汉字转换拼音失败");
throw new RuntimeException("汉字转换拼音失败");
}
log.info("汉字转换拼音结果: " + hanzi + " -->> " + pinyinBuilder.toString());
return pinyinBuilder.toString();
}