将汉字转换为全拼 、提取每个汉字的首字母

其中使用到的包:pinyin4j-2.5.0.jar

下载地址:http://sourceforge.net/projects/pinyin4j/files/

最新版本:pinyin4j-2.5.0

pinyin4j官方网址:http://pinyin4j.sourceforge.net/
 1 /**
 2  * 将字符串中的中文转化为拼音,其他字符不变
 3  * 
 4  * @ClassName: PinYinUtil
 5  * @author Xingle
 6  * @date 2014-6-5 上午10:04:31
 7  */
 8 public class PinYinUtil {
 9 
10     /**
11      * 将汉字转成全拼
12      * 
13      * @param inputString
14      * @return
15      * @author xingle
16      * @data 2014-6-16 上午11:30:16
17      */
18     public static String getPinYin(String inputString) {
19         // 设置汉字拼音输出的格式
20         HanyuPinyinOutputFormat format = new HanyuPinyinOutputFormat();
21         format.setCaseType(HanyuPinyinCaseType.UPPERCASE);// 大写
22         format.setToneType(HanyuPinyinToneType.WITHOUT_TONE);// 无音调
23         format.setVCharType(HanyuPinyinVCharType.WITH_V);
24         char[] input = inputString.toCharArray();
25         String output = "";
26         try {
27             for (int i = 0; i < input.length; i++) {
28                 if (java.lang.Character.toString(input[i]).matches(
29                         "[\u4E00-\u9FA5]+")) {
30                     String[] temp = PinyinHelper.toHanyuPinyinStringArray(
31                             input[i], format);
32                     output += temp[0];
33                 } else {
34                     output += input[i];
35                 }
36             }
37         } catch (Exception e) {
38             e.printStackTrace();
39         }
40         return output;
41     }
42 
43     /**
44      * 提取每个汉字的首字母
45      * 
46      * @param inputString
47      * @return
48      * @author xingle
49      * @data 2014-6-16 上午11:31:23
50      */
51     public static String getPinYinHeadChar(String inputString) {
52         String convert = "";
53         for (int i = 0; i < inputString.length(); i++) {
54             char word = inputString.charAt(i);
55             // 提取汉字的首字母
56             String[] pinyinArray = PinyinHelper.toHanyuPinyinStringArray(word);
57             if (pinyinArray != null) {
58                 convert += pinyinArray[0].charAt(0);
59             } else {
60                 convert += word;
61             }
62         }
63         return convert;
64     }
65 
66     /**
67      * 将字符串转换成ASCII码
68      * 
69      * @param inputString
70      * @return
71      * @author xingle
72      * @data 2014-6-16 上午11:59:59
73      */
74     public static String getCnASCII(String inputString) {
75         StringBuffer sb = new StringBuffer();
76         // 字符串转换字节序列
77         byte[] b = inputString.getBytes();
78         for (int i = 0; i < b.length; i++) {
79             sb.append(Integer.toHexString(b[i] & 0xff));
80         }
81         return sb.toString();
82     }
83 
84     public static void main(String[] args) {
85         System.out.println(getPinYin("编程Hello"));
86         System.out.println(getPinYinHeadChar("编程"));
87         System.out.println(getCnASCII("编程"));
88     }
89 }

执行结果:

BIANCHENGHello
bc
e7bc96e7a88b

原文地址:https://www.cnblogs.com/xingele0917/p/3770235.html