• java把汉字转换成拼音


    汉字转换成拼音工具类:

     1 import net.sourceforge.pinyin4j.PinyinHelper;
     2 import net.sourceforge.pinyin4j.format.HanyuPinyinCaseType;
     3 import net.sourceforge.pinyin4j.format.HanyuPinyinOutputFormat;
     4 import net.sourceforge.pinyin4j.format.HanyuPinyinToneType;
     5 import net.sourceforge.pinyin4j.format.HanyuPinyinVCharType;
     6 import net.sourceforge.pinyin4j.format.exception.BadHanyuPinyinOutputFormatCombination;
     7 
     8 public class PinyinUtils {
     9     /**
    10      * 将汉字转换为全拼
    11      * 
    12      * @param src
    13      * @return String
    14      */
    15     public static String getPinYin(String src) {
    16         char[] t1 = null;
    17         t1 = src.toCharArray();
    18         String[] t2 = new String[t1.length];
    19         // 设置汉字拼音输出的格式
    20         HanyuPinyinOutputFormat t3 = new HanyuPinyinOutputFormat();
    21         t3.setCaseType(HanyuPinyinCaseType.LOWERCASE);
    22         t3.setToneType(HanyuPinyinToneType.WITHOUT_TONE);
    23         t3.setVCharType(HanyuPinyinVCharType.WITH_V);
    24         String t4 = "";
    25         int t0 = t1.length;
    26         try {
    27             for (int i = 0; i < t0; i++) {
    28                 // 判断是否为汉字字符
    29                 if (Character.toString(t1[i]).matches("[\u4E00-\u9FA5]+")) {
    30                     t2 = PinyinHelper.toHanyuPinyinStringArray(t1[i], t3);// 将汉字的几种全拼都存到t2数组中
    31                     t4 += t2[0];// 取出该汉字全拼的第一种读音并连接到字符串t4后
    32                 } else {
    33                     // 如果不是汉字字符,直接取出字符并连接到字符串t4后
    34                     t4 += Character.toString(t1[i]);
    35                 }
    36             }
    37         } catch (BadHanyuPinyinOutputFormatCombination e) {
    38             // TODO Auto-generated catch block
    39             e.printStackTrace();
    40         }
    41         return t4;
    42     }
    43 
    44     /**
    45      * 提取每个汉字的首字母
    46      * 
    47      * @param str
    48      * @return String
    49      */
    50     public static String getPinYinHeadChar(String str) {
    51         String convert = "";
    52         for (int j = 0; j < str.length(); j++) {
    53             char word = str.charAt(j);
    54             // 提取汉字的首字母
    55             String[] pinyinArray = PinyinHelper.toHanyuPinyinStringArray(word);
    56             if (pinyinArray != null) {
    57                 convert += pinyinArray[0].charAt(0);
    58             } else {
    59                 convert += word;
    60             }
    61         }
    62         return convert;
    63     }
    64 
    65     /**
    66      * 将字符串转换成ASCII码
    67      * 
    68      * @param cnStr
    69      * @return String
    70      */
    71     public static String getCnASCII(String cnStr) {
    72         StringBuffer strBuf = new StringBuffer();
    73         // 将字符串转换成字节序列
    74         byte[] bGBK = cnStr.getBytes();
    75         for (int i = 0; i < bGBK.length; i++) {
    76             // 将每个字符转换成ASCII码
    77             strBuf.append(Integer.toHexString(bGBK[i] & 0xff) + " ");
    78         }
    79         return strBuf.toString();
    80     }
    81 
    82 }
  • 相关阅读:
    ECMAScript 继承继承机制实现
    ECMAScript 函数定义类或对象
    药品查询APP开发流程(五)开发—yao_search.js
    ECMAScript 函数修改对象
    药品查询APP开发流程(六)开发—yao_category.js
    药品查询APP开发流程(四)开发—app.js
    药品查询APP开发流程(一)需求分析
    药品查询APP开发流程(三)开发—SQLite数据库
    ECMAScript 继承继承机制实例
    求最长递减子序列(转载)
  • 原文地址:https://www.cnblogs.com/zh-1721342390/p/8276922.html
Copyright © 2020-2023  润新知