可以使用pinyin4j.jar來實現將漢字轉換為拼音的功能.代碼如下:
package mainApp;<p>import net.sourceforge.pinyin4j.PinyinHelper;<br />import net.sourceforge.pinyin4j.format.HanyuPinyinCaseType;<br />import net.sourceforge.pinyin4j.format.HanyuPinyinOutputFormat;<br />import net.sourceforge.pinyin4j.format.HanyuPinyinToneType;<br />import net.sourceforge.pinyin4j.format.HanyuPinyinVCharType;<br />import net.sourceforge.pinyin4j.format.exception.BadHanyuPinyinOutputFormatCombination; </p><p>public class TestPinYin4j<br />{<br />/**<br />* 將漢字轉換為全拼<br />*<br />* @param src<br />* @return String<br />*/<br />public static String getPinYin(String src)<br />{<br />char[] t1 = null;<br />t1 = src.toCharArray();<br />String[] t2 = new String[t1.length];<br />// 設定漢字拼音輸出的格式<br />HanyuPinyinOutputFormat t3 = new HanyuPinyinOutputFormat();<br />t3.setCaseType(HanyuPinyinCaseType.LOWERCASE);<br />t3.setToneType(HanyuPinyinToneType.WITHOUT_TONE);<br />t3.setVCharType(HanyuPinyinVCharType.WITH_V);<br />String t4 = "";<br />int t0 = t1.length;<br />try<br />{<br />for (int i = 0; i < t0; i++)<br />{<br />// 判斷能否為漢字字元<br />// System.out.println(t1[i]);<br />if (Character.toString(t1[i]).matches("[//u4E00-//u9FA5]+"))<br />{<br />t2 = PinyinHelper.toHanyuPinyinStringArray(t1[i], t3);// 將漢字的幾種全拼都存到t2數組中<br />t4 += t2[0];// 取出該漢字全拼的第一種讀音並串連到字串t4後<br />}<br />else<br />{<br />// 如果不是漢字字元,間接取出字元並串連到字串t4後<br />t4 += Character.toString(t1[i]);<br />}<br />}<br />}<br />catch (BadHanyuPinyinOutputFormatCombination e)<br />{<br />e.printStackTrace();<br />}<br />return t4;<br />} </p><p>/**<br />* 提取每個漢字的首字母<br />*<br />* @param str<br />* @return String<br />*/<br />public static String getPinYinHeadChar(String str)<br />{<br />String convert = "";<br />for (int j = 0; j < str.length(); j++)<br />{<br />char word = str.charAt(j);<br />// 提取漢字的首字母<br />String[] pinyinArray = PinyinHelper.toHanyuPinyinStringArray(word);<br />if (pinyinArray != null)<br />{<br />convert += pinyinArray[0].charAt(0);<br />}<br />else<br />{<br />convert += word;<br />}<br />}<br />return convert;<br />} </p><p>/**<br />* 將字串轉換成ASCII碼<br />*<br />* @param cnStr<br />* @return String<br />*/<br />public static String getCnASCII(String cnStr)<br />{<br />StringBuffer strBuf = new StringBuffer();<br />// 將字串轉換成位元組序列<br />byte[] bGBK = cnStr.getBytes();<br />for (int i = 0; i < bGBK.length; i++)<br />{<br />// 將每個字元轉換成ASCII碼<br />strBuf.append(Integer.toHexString(bGBK[i] & 0xff));<br />}<br />return strBuf.toString();<br />} </p><p>public static void main(String[] args)<br />{<br />String cnStr = "陳";<br />System.out.println(getPinYin(cnStr));<br />System.out.println(getPinYinHeadChar(cnStr));<br />System.out.println(getCnASCII(cnStr));<br />}<br />} 可以從CSDN的"資源頻道"搜尋"pinyin4j.jar"找到相關的資源,引入項目中就可以了.
pinyin4j能夠根據中文字元擷取其對應的拼音,而且拼音的格式可以定製。
特徵:
1. 支援多種拼音系統:
漢語拼音
通用拼音
威氏拼音
注音二式
雅禮
國語羅馬字
2. 支援多音字
能夠根據上下文獲得正確的拼音
3. 支援多種拼音格式
大小寫
支援unicode ü 、v 和 u
支援數字音調(lü3)、變音符號 (lǚ)和無音調標識(lü)