Java 读取汉字全拼简写详解编程语言

需要pinyin4j这个类库: http://pinyin4j.sourceforge.net/

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; 
 
 
public class ChineseToSpell { 
 
 
 
 
   /** 
    * 得到 全拼 
    *  
    * @param src 
    * @return 
    */ 
   public static String getFullSpell(String src) { 
       char[] t1 = null; 
       t1 = src.toCharArray(); 
       String[] t2 = new String[t1.length]; 
       HanyuPinyinOutputFormat t3 = new HanyuPinyinOutputFormat(); 
       t3.setCaseType(HanyuPinyinCaseType.LOWERCASE); 
       t3.setToneType(HanyuPinyinToneType.WITHOUT_TONE); 
       t3.setVCharType(HanyuPinyinVCharType.WITH_V); 
       String t4 = ""; 
       int t0 = t1.length; 
       try { 
           for (int i = 0; i < t0; i++) { 
               // 判断是否为汉字字符 
               if (java.lang.Character.toString(t1[i]).matches("[/u4e00-/u9fa5]+")) { 
                   t2 = PinyinHelper.toHanyuPinyinStringArray(t1[i], t3); 
                   t4 += t2[0]; 
               } else { 
                   t4 += java.lang.Character.toString(t1[i]); 
               } 
           } 
           return t4; 
       } catch (BadHanyuPinyinOutputFormatCombination e1) { 
           e1.printStackTrace(); 
       } 
       return t4; 
   } 
 
 
   /** 
    * 得到中文首字母 
    *  
    * @param str 
    * @return 
    */ 
   public static String getPinYinHeadChar(String str) { 
 
 
       String convert = ""; 
       for (int j = 0; j < str.length(); j++) { 
           char word = str.charAt(j); 
           String[] pinyinArray = PinyinHelper.toHanyuPinyinStringArray(word); 
           if (pinyinArray != null) { 
               convert += pinyinArray[0].charAt(0); 
           } else { 
               convert += word; 
           } 
       } 
       return convert; 
   } 
 
 
   /** 
    * 将字符串转移为ASCII码 
    *  
    * @param cnStr 
    * @return 
    */ 
   public static String getCnASCII(String cnStr) { 
       StringBuffer strBuf = new StringBuffer(); 
       byte[] bGBK = cnStr.getBytes(); 
       for (int i = 0; i < bGBK.length; i++) { 
           // System.out.println(Integer.toHexString(bGBK[i]&0xff)); 
           strBuf.append(Integer.toHexString(bGBK[i] & 0xff)); 
       } 
       return strBuf.toString(); 
   } 
 
 
//    public static void main(String[] args) { 
//     long currentTime=System.currentTimeMillis(); 
//        String cnStr = "丁叉基酜内酯"; 
//        System.out.println(getPingYin(cnStr)); 
//        System.out.println(getPinYinHeadChar(cnStr)); 
//        System.out.println(System.currentTimeMillis()-currentTime); 
//    } 
 
 
 
 
} 

原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/tech/pnotes/10940.html

(0)
上一篇 2021年7月19日 10:32
下一篇 2021年7月19日 10:32

相关推荐

发表回复

登录后才能评论