java使用pinyin4j API实现将字符转换成相对应的拼音
使用前项目需引入对应的pinyin4j.jar包,相关配置自行百度
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 static String getFullSpell(String chinese) {
StringBuffer pybf = new StringBuffer();
char[] arr = chinese.toCharArray();
HanyuPinyinOutputFormat defaultFormat = new HanyuPinyinOutputFormat();
defaultFormat.setCaseType(HanyuPinyinCaseType.LOWERCASE);
defaultFormat.setToneType(HanyuPinyinToneType.WITHOUT_TONE);
for (int i = 0; i < arr.length; i++) {
if (arr[i] > 128) {
try {
pybf.append(PinyinHelper.toHanyuPinyinStringArray(arr[i], defaultFormat)[0]);
} catch (BadHanyuPinyinOutputFormatCombination e) {
e.printStackTrace();
}
} else if((arr[i]>64 && arr[i]<91)||(arr[i]>96 && arr[i]<123)){
pybf.append(arr[i]);
} else if(arr[i]>47 && arr[i]<58){
switch (arr[i]){
case 48: pybf.append("ling");break;
case 49: pybf.append("yi");break;
case 50: pybf.append("er");break;
case 51: pybf.append("san");break;
case 52: pybf.append("si");break;
case 53: pybf.append("wu");break;
case 54: pybf.append("liu");break;
case 55: pybf.append("qi");break;
case 56: pybf.append("ba");break;
case 57: pybf.append("jiu");break;
default:break;
}
}
}
return pybf.toString();
}