使用PinYin4j.jar將漢字轉換為拼音 .

來源:互聯網
上載者:User

  

可以使用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ü)

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.