在开发中,有时会遇到中文汉字转换成拼音的情况,例如通过录中,这时就要使用第三方jar包,即pinyin4j.jar。
/**
* 输出格式
*
* @return
*/
private static HanyuPinyinOutputFormat getDefaultOutputFormat() {
HanyuPinyinOutputFormat format = new HanyuPinyinOutputFormat();
format.setCaseType(HanyuPinyinCaseType.UPPERCASE);// 大写
format.setToneType(HanyuPinyinToneType.WITHOUT_TONE);// 没有音调数字
format.setVCharType(HanyuPinyinVCharType.WITH_U_AND_COLON);// u显示
return format;
}
/**
<span style="white-space:pre"> </span> * 将中文转换成拼音
<span style="white-space:pre"> </span> *
<span style="white-space:pre"> </span> * @param 拼音
<span style="white-space:pre"> </span> * -汉字
<span style="white-space:pre"> </span> * @return
<span style="white-space:pre"> </span> */
<span style="white-space:pre"> </span>public static String getPinYin(String zhongwen)
<span style="white-space:pre"> </span>throws BadHanyuPinyinOutputFormatCombination {
<span style="white-space:pre"> </span>String zhongWenPinYin = "";
<span style="white-space:pre"> </span>char[] chars = zhongwen.toCharArray();
<span style="white-space:pre"> </span>for (int i = 0; i < chars.length; i++) {
<span style="white-space:pre"> </span>String[] pinYin = PinyinHelper.toHanyuPinyinStringArray(chars[i],
<span style="white-space:pre"> </span>getDefaultOutputFormat());
<span style="white-space:pre"> </span>// 当转换不是中文字符时,返回null
<span style="white-space:pre"> </span>if (pinYin != null) {
<span style="white-space:pre"> </span>zhongWenPinYin += pinYin[0];
<span style="white-space:pre"> </span>} else {
<span style="white-space:pre"> </span>zhongWenPinYin += chars[i];
<span style="white-space:pre"> </span>}
<span style="white-space:pre"> </span>}
<span style="white-space:pre"> </span>return zhongWenPinYin;
<span style="white-space:pre"> </span>}