Java中文转换为英文拼音

Java中文转换为英文拼音


import net.sourceforge.pinyin4j.PinyinHelper;

import net.sourceforge.pinyin4j.format.HanyuPinyinCaseType;

import net.sourceforge.pinyin4j.format.HanyuPinyinOutputFormat;

import net.sourceforge.pinyin4j.format.HanyuPinyinToneType;

import net.sourceforge.pinyin4j.format.HanyuPinyinVCharType;

import net.sourceforge.pinyin4j.format.exception.BadHanyuPinyinOutputFormatCombination;

    /**

    * 中文转换为英文拼音

    *

    * @param str 中文字符串

    *            需导入依赖

    *            <dependency>

    *            <groupId>com.belerweb</groupId>

    *            <artifactId>pinyin4j</artifactId>

    *            <version>2.5.0</version>

    *            </dependency>

    */

    public static String getChineseToPinyin(String str) {

        // 中文字符串转换为字符数组

        char[] chars = str.toCharArray();

        // 设置转换格式

        HanyuPinyinOutputFormat format = new HanyuPinyinOutputFormat();

        // 小写

        format.setCaseType(HanyuPinyinCaseType.LOWERCASE);

        // 无声调,WITH_TONE_NUMBER表示用数字表示声调, WITH_TONE_MARK表示用声调符号表示

        format.setToneType(HanyuPinyinToneType.WITHOUT_TONE);

        // 特殊拼音ü的的显示格式

        format.setVCharType(HanyuPinyinVCharType.WITH_V);

        StringBuilder result = new StringBuilder();

        try {

            for (char c : chars) {

                // 通过正则判断是否为汉字字符

                if (Character.toString(c).matches("[\\u4E00-\\u9FA5]+")) {

                    String[] s = PinyinHelper.toHanyuPinyinStringArray(c, format);

                    result.append(s[0]);

                } else {

                    result.append(c);

                }

            }

            return result.toString();

        } catch (BadHanyuPinyinOutputFormatCombination e1) {

            e1.printStackTrace();

        }

        return result.toString();

    }


更多方法访问Java工具网[utils.net.cn](http://utils.net.cn)

每个方法单独使用,不互相依赖,持续更新!

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。