Java 将汉字转拼音

Demo的源码:

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.exception.BadHanyuPinyinOutputFormatCombination;

/**
 * Description: 将汉字转为拼音
 * 本功能的实现时利用java开源库,开发此程序需要一个jar包
 * <dependency>
 *     <groupId>com.belerweb</groupId>
 *     <artifactId>pinyin4j</artifactId>
 *     <version>2.5.1</version>
 * </dependency>
 * @author: kingSon
 */
public class PinyinUtil {

    /**
     * 获取字符串拼音的第一个字母
     * @param chinese
     * @return
     */
    public static String ToFirstChar(String chinese){
        String pinyinStr = "";
        char[] newChar = chinese.toCharArray();  //转为单个字符
        HanyuPinyinOutputFormat defaultFormat = new HanyuPinyinOutputFormat();
        defaultFormat.setCaseType(HanyuPinyinCaseType.LOWERCASE);
        defaultFormat.setToneType(HanyuPinyinToneType.WITHOUT_TONE);
        for (int i = 0; i < newChar.length; i++) {
            if (newChar[i] > 128) {
                try {
                    pinyinStr += PinyinHelper.toHanyuPinyinStringArray(newChar[i], defaultFormat)[0].charAt(0);
                } catch (BadHanyuPinyinOutputFormatCombination e) {
                    
                }
            }else{
                pinyinStr += newChar[i];
            }
        }
        return pinyinStr;
     }

    /**
     * 汉字转为拼音
     * @param chinese
     * @return
     */
    public static String ToPinyin(String chinese){
        String pinyinStr = "";
        char[] newChar = chinese.toCharArray();
        HanyuPinyinOutputFormat defaultFormat = new HanyuPinyinOutputFormat();
        defaultFormat.setCaseType(HanyuPinyinCaseType.LOWERCASE);
        defaultFormat.setToneType(HanyuPinyinToneType.WITHOUT_TONE);
        for (int i = 0; i < newChar.length; i++) {
            if (newChar[i] > 128) {
                try {
                 pinyinStr += PinyinHelper.toHanyuPinyinStringArray(newChar[i], defaultFormat)[0];
                } catch (BadHanyuPinyinOutputFormatCombination e) {

                }
            }else{
                pinyinStr += newChar[i];
            }
        }
        return pinyinStr;
    }
}

    main测试方法的代码:

    public static void main(String[] args) {
        System.out.println(ToFirstChar("汉字转换为拼音"));
        System.out.println(ToPinyin("汉字转换为拼音"));
    }

  转载本博客时请在文章明显位置标明文章出处(itRed的博客:http://www.cnblogs.com/itred)。

posted @ 2021-07-01 17:09  小刀4217  阅读(278)  评论(0)    收藏  举报