汉字转拼音

2023-12-18 17:45:56
<!--中文转拼音-->
<dependency>
<groupId>com.belerweb</groupId>
<artifactId>pinyin4j</artifactId>
<version>2.5.0</version>
</dependency>
 /**
     * 得到中文首字母(中国 -> zg)
     *
     * @param str 需要转化的中文字符串
     * @return 小写首字母缩写的字符串
     */
    public static String getPinYinHeadChar(String str) {
        StringBuilder convert = new StringBuilder();
        if (StringUtils.isBlank(str)) {
            return "";
        }
        String chineseStr = toStrByChinese(str);
        for (int j = 0; j < chineseStr.length(); j++) {
            char word = chineseStr.charAt(j);
            String[] pinyinArray = PinyinHelper.toHanyuPinyinStringArray(word);
            if (pinyinArray != null) {
                convert.append(pinyinArray[0].charAt(0));
            } else {
                convert.append(word);
            }
        }
        String result = convert.toString().toLowerCase();
        return result;
    }
     /**
     * 提取字符串中文字符
     *
     * @param str
     * @return
     */
    public static String toStrByChinese(String str) {
        Matcher m = CHINESE_PATTERN.matcher(str);
        StringBuffer sb = new StringBuffer();
        while (m.find()) {
            sb.append(m.group());
        }
        return sb.toString();
    }
示例:


    public static void main(String[] args) {
        String s = "您好,china中国";
        String strByChinese = toStrByChinese(s);
        System.out.println("strByChinese = " + strByChinese);
        //结果:strByChinese = 您好中国
        
        String pinYinHeadChar = getPinYinHeadChar(s);
        System.out.println("pinYinHeadChar = " + pinYinHeadChar);
        //结果:pinYinHeadChar = nhzg
    }

文章来源:https://blog.csdn.net/weixin_46894136/article/details/135066917
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。