田源
2025-01-16 a13255b4129ee8a7a7b7e1ecd8e02dd2c78f7c17
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
package com.vci.web.util;
 
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: ligang 
   
 * @createtime: 2012-12-26  
 
 * @version:  
   
 */
public class PinyinCommon {
    
    /**
     * 得到 全拼
     * @param src
     * @return
     */
    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(Character.toString(t1[i]).matches("[\\u4E00-\\u9FA5]+")) {
                  t2 = PinyinHelper.toHanyuPinyinStringArray(t1[i], t3); 
                  t4+=t2[0]; 
             } else {
                  t4+= 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(); 
    }