java漢字轉拼音以及得到首字母通用方法

Textpp 12年前發布 | 3K 次閱讀 可視化工具 countdown dlib

java漢字轉拼音以及得到首字母通用方法

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.HanyuPinyinVCharType; import net.sourceforge.pinyin4j.format.exception.BadHanyuPinyinOutputFormatCombination;

/**

  • 拼音工具類
  • @author lsf */ public class PingYinUtil { /**

    • 將字符串中的中文轉化為拼音,其他字符不變
    • @param inputString
    • @return */ public static String getPingYin(String inputString) { HanyuPinyinOutputFormat format = new HanyuPinyinOutputFormat(); format.setCaseType(HanyuPinyinCaseType.LOWERCASE); format.setToneType(HanyuPinyinToneType.WITHOUT_TONE); format.setVCharType(HanyuPinyinVCharType.WITH_V);

      char[] input = inputString.trim().toCharArray(); String output = "";

      try {

       for (int i = 0; i < input.length; i++) {
           if (java.lang.Character.toString(input[i]).matches("[\\u4E00-\\u9FA5]+")) {
               String[] temp = PinyinHelper.toHanyuPinyinStringArray(input[i], format);
               output += temp[0];
           } else
               output += java.lang.Character.toString(input[i]);
       }
      

      } catch (BadHanyuPinyinOutputFormatCombination e) {

       e.printStackTrace();
      

      } return output; } /**

    • 獲取漢字串拼音首字母,英文字符不變
    • @param chinese 漢字串
    • @return 漢語拼音首字母
      */
      public static String getFirstSpell(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 {   
                               String[] temp = PinyinHelper.toHanyuPinyinStringArray(arr[i], defaultFormat);   
                               if (temp != null) {   
                                       pybf.append(temp[0].charAt(0));   
                               }   
                       } catch (BadHanyuPinyinOutputFormatCombination e) {   
                               e.printStackTrace();   
                       }   
               } else {   
                       pybf.append(arr[i]);   
               }   
       }   
       return pybf.toString().replaceAll("\\W", "").trim();   
      
      }
      /**
    • 獲取漢字串拼音,英文字符不變
    • @param chinese 漢字串
    • @return 漢語拼音
      */
      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 {   
                       pybf.append(arr[i]);   
               }   
       }   
       return pybf.toString();   
      
      }
      } </pre>
 本文由用戶 Textpp 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!