package com.yiboshi.science.utils; 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 String toPinyin(String chinese) { HanyuPinyinOutputFormat format = new HanyuPinyinOutputFormat(); format.setCaseType(HanyuPinyinCaseType.LOWERCASE); format.setToneType(HanyuPinyinToneType.WITHOUT_TONE); StringBuilder sb = new StringBuilder(); char[] chars = chinese.toCharArray(); for (char c : chars) { if (Character.isWhitespace(c)) { continue; } if (c >= '\u4e00' && c <= '\u9fa5') { try { String[] pinyinArray = PinyinHelper.toHanyuPinyinStringArray(c, format); sb.append(pinyinArray[0]); } catch (BadHanyuPinyinOutputFormatCombination e) { e.printStackTrace(); } } else { sb.append(c); } } return sb.toString(); } }