zoukankan      html  css  js  c++  java
  • 将汉字转换为全拼 、提取每个汉字的首字母

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

  • 相关阅读:
    Python之 continue继续循环
    Python之 break退出循环
    Python之 while循环
    Python之 for循环
    java中collection、map、set、list简介 (转)
    CloudSim介绍和使用
    智能指针和动态内存
    boost signal2
    boost 信号 :
    boost库 线程使用
  • 原文地址:https://www.cnblogs.com/xingele0917/p/3770235.html
Copyright © 2011-2022 走看看