Java如何将中文转化为拼音

慈云数据 6个月前 (05-30) 技术支持 33 0

Java中可以使用三方库pinyin4j来实现中文转拼音

首先,需要引入pinyin4j的jar包,可以在pinyin4j的官方网站(http://pinyin4j.sourceforge.net/)下载,也可以通过Maven引入。

Maven引入依赖:

        
            com.belerweb
            pinyin4j
            2.5.1
        

以下是一个简单的示例代码,可以将中文字符串转换为拼音:

import net.sourceforge.pinyin4j.PinyinHelper;
public class ChineseToPinyin {
    public static void main(string[] args) {
        String chinese = "你好,世界!";
        String pinyin = convertToPinyin(chinese);
        System.out.println(pinyin);
    }
    public static String convertToPinyin(String chinese) {
        StringBuilder pinyin = new StringBuilder();
        char[] chars = chinese.toCharArray();
        for (char c : chars) {
            String[] pinyinArray = PinyinHelper.toHanyuPinyinStringArray(c);
            if (pinyinArray != null) {
                pinyin.append(pinyinArray[0]);
            } else {
                pinyin.append(c);
            }
        }
        return pinyin.toString();
    }
}

执行以上代码,输出结果为:ni3hao3,shi4jie4!

其中拼音后面的数字代表声调,3代表第三声

那么如果我们不需要声调,如何实现呢?其实目前已经支持了,代码如下:

public static void main(String[] args) {
        String input = "你好,世界!";
        // 设置不带声调的输出选项
        net.sourceforge.pinyin4j.format.HanyuPinyinOutputFormat format = new net.sourceforge.pinyin4j.format.HanyuPinyinOutputFormat();
        format.setToneType(net.sourceforge.pinyin4j.format.HanyuPinyinToneType.WITHOUT_TONE);
        StringBuilder output = new StringBuilder();
        for (char c : input.toCharArray()) {
            try {
                String[] pinyinArray = PinyinHelper.toHanyuPinyinStringArray(c, format);
                if (pinyinArray != null && pinyinArray.length > 0) {
                    output.append(pinyinArray[0]).append(" ");
                } else {
                    output.append(c).append(" ");
                }
            } catch (Exception e) {
                output.append(c).append(" ");
            }
        }
        System.out.println(output.toString().trim()); // 输出结果:pin yin 4j
    }

此时执行效果如下:ni hao , shi jie !

微信扫一扫加客服

微信扫一扫加客服

点击启动AI问答
Draggable Icon