將漢語轉換成拼音(全拼和縮寫)

程序裏面用到了開源的包,能夠將漢語轉成全拼或者縮寫,代碼以下:
/**    
* author:qiaolei
* 2010-6-25上午11:44:21create    
*/
    
package com.sucre;

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 ChineseToEnglish {
//  將漢字轉換爲全拼
   public static String getPingYin(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]);
             }
//                System.out.println(t4);
             return t4;
         }
         catch (BadHanyuPinyinOutputFormatCombination e1) {
             e1.printStackTrace();
         }
         return t4;
  }
    
//  返回中文的首字母
   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碼
   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) {
  System.out.println(getPingYin( "綦江縣"));
  System.out.println(getPinYinHeadChar( "綦江縣"));
  System.out.println(getCnASCII( "綦江縣"));
 }
結果以下:
qijiangxian qjx f4ebbdadcfd8
相關文章
相關標籤/搜索