美文网首页Java web
如何使用Java将中文转成拼音呢?

如何使用Java将中文转成拼音呢?

作者: HeloWxl | 来源:发表于2019-11-28 23:42 被阅读0次

    最近最项目遇到一个需求,就是将中文汉字转成拼音~
    效果截图:
    当时我输入中文:你好世界


    image.png

    实现步骤

    1、pom.xml

     <dependency>
             <groupId>com.belerweb</groupId>
             <artifactId>pinyin4j</artifactId>
             <version>2.5.0</version>
      </dependency>
    

    2、PinyinUtil

    • 中文汉字转成拼音
     /**
         * 将汉字转换为全拼
         * 
         * @param src
         * @return String
         */
    private static String getPinYin(String src) {
                char[] 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);// 将汉字的几种全拼都存到t2数组中
                        t4 += t2[0];// 取出该汉字全拼的第一种读音并连接到字符串t4后
                        } else {
                          // 如果不是汉字字符,直接取出字符并连接到字符串t4后
                            t4 = t4 + Character.toString(t1[i]);
                        }
                    }
                } catch (BadHanyuPinyinOutputFormatCombination var8) {
                    var8.printStackTrace();
                }
                return t4;
            }
    
    image.png
    • 中文汉字转成拼音首字母大写
     /**
         * 提取每个汉字的首字母
         * 
         * @param str
         * @return String
         */
    public static String seacherCode(String str) {
                ArrayList<String> pyls = new ArrayList();
                String sc = "";
                PinyinUtil pu = new PinyinUtil();
                pyls = pu.getPinYinHeadChar(str, pyls);
    
                for(int i = 0; i < pyls.size(); ++i) {
                    sc = sc +  (String)pyls.get(i);
                }
                return sc.toUpperCase();
            }
    
    image.png
    • 中文汉字转成ASCII码
      public static String getCnASCII(String cnStr) {
            StringBuffer strBuf = new StringBuffer();
            // 将字符串转换成字节序列
            byte[] bGBK = cnStr.getBytes();
            for (int i = 0; i < bGBK.length; i++) {
                // 将每个字符转换成ASCII码
                strBuf.append(Integer.toHexString(bGBK[i] & 0xff) + " ");
            }
            return strBuf.toString();
        }
    
    image.png

    相关文章

      网友评论

        本文标题:如何使用Java将中文转成拼音呢?

        本文链接:https://www.haomeiwen.com/subject/oeaiwctx.html