核心代码:
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.exception.BadHanyuPinyinOutputFormatCombination;
public class ChineseToPinyin {
public static void main(String[] args) {
String chinese = "你好,世界!";
String pinyin = convertToPinyin(chinese);
System.out.println(pinyin);
}
public static String convertToPinyin(String chinese) {
StringBuilder sb = new StringBuilder();
char[] chars = chinese.toCharArray();
// 创建一个拼音输出格式
HanyuPinyinOutputFormat format = new HanyuPinyinOutputFormat();
format.setToneType(HanyuPinyinToneType.WITHOUT_TONE); // 去掉声调
format.setCaseType(HanyuPinyinCaseType.LOWERCASE); // 转换为小写字母
for (char c : chars) {
try {
String[] pinyinArray = PinyinHelper.toHanyuPinyinStringArray(c, format);
if (pinyinArray != null && pinyinArray.length > 0) {
String pinyin = pinyinArray[0].replaceAll("[^a-zA-Z]", ""); // 过滤掉非字母字符
sb.append(pinyin);
} else {
sb.append(c);
}
} catch (BadHanyuPinyinOutputFormatCombination e) {
e.printStackTrace();
}
}
return sb.toString();
}
}
xml依赖:
<dependency>
<groupId>com.belerweb</groupId>
<artifactId>pinyin4j</artifactId>
<version>2.5.1</version>
</dependency>