其中使用到的包: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