用到的工具是
com.belerweb.pinyin4j
pom.xml 导入
<dependency>
<groupId>com.belerweb</groupId>
<artifactId>pinyin4j</artifactId>
<version>2.5.0</version>
</dependency>
使用:
public static void main(String[] args) {
String[] strings = PinyinHelper.toHanyuPinyinStringArray('好');
System.out.println(Arrays.toString(strings));
}
输出结果 [hao3,hao4] 注意:这个三四 是 三声 和四声。当我们不需要声调的时候 可以去掉 只需要加一个 HanyuPinyinOutputFormat
public static void main(String[] args) throws BadHanyuPinyinOutputFormatCombination {
HanyuPinyinOutputFormat hanyuPinyinOutputFormat = new HanyuPinyinOutputFormat();
hanyuPinyinOutputFormat.setToneType(HanyuPinyinToneType.WITHOUT_TONE); //去掉声调
String[] strings = PinyinHelper.toHanyuPinyinStringArray('好',hanyuPinyinOutputFormat);
System.out.println(Arrays.toString(strings));
}
封装拼音工具:只需要调用时候 给一个字符串 就可以将其转换为对应的拼音。
public class PinyinUtil {
private static HanyuPinyinOutputFormat hanyuPinyinOutputFormat;
static {
hanyuPinyinOutputFormat = new HanyuPinyinOutputFormat();
hanyuPinyinOutputFormat.setToneType(HanyuPinyinToneType.WITHOUT_TONE);
}
/**
* 将字符转换成拼音
* @param content
* @return
*/
public static String str2Pinyin(String content){
if(content == null) return content;
StringBuilder sb = new StringBuilder();
char []chars = content.toCharArray();
for (int i = 0; i < chars.length; i++) {
char c = chars[i];
try {
String[] pinyin = PinyinHelper.toHanyuPinyinStringArray(c,hanyuPinyinOutputFormat);
if(pinyin != null){
sb.append(pinyin[0]); //只需要第一个拼音
}else{
sb.append(c);
}
} catch (BadHanyuPinyinOutputFormatCombination badHanyuPinyinOutputFormatCombination) {
badHanyuPinyinOutputFormatCombination.printStackTrace();
}
}
return sb.toString();
}
}