漢字轉拼音首字母或則全拼工具類


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;

/**
 * @ClassName:PinYinUtil
 * @Description:
 * @date 2019-08-07 18:37
 */
public class PinYinUtil { /**
 /**
 * 漢字轉換爲大寫拼音(第一個字母)
 * 我就是我->WJSW
 */
public static String toUpFirstPinYin(String hanZhi) {
    String pinYin = "";
    char[] ch = hanZhi.toCharArray();
    for (char item : ch) {
        HanyuPinyinOutputFormat outputFormat = new HanyuPinyinOutputFormat();
        outputFormat.setCaseType(HanyuPinyinCaseType.UPPERCASE);
        String[] stringArray = new String[0];
        try {
            stringArray = PinyinHelper.toHanyuPinyinStringArray(item, outputFormat);
        } catch (BadHanyuPinyinOutputFormatCombination badHanyuPinyinOutputFormatCombination) {
            badHanyuPinyinOutputFormatCombination.printStackTrace();
        }

        if (stringArray.length == 0) {
            //處理字符不是漢字的情況
            pinYin += item;
        } else {
            pinYin += stringArray[0].toCharArray()[0];
        }
    }
    return pinYin;


}

    /**
     * 漢字轉換爲拼音
     * 我就是我->wojiushiwo
     */
    public static String toPinYin(String hanZhi) throws BadHanyuPinyinOutputFormatCombination {
        String pinYin = "";
        char[] ch = hanZhi.toCharArray();
        for (char item : ch) {
            HanyuPinyinOutputFormat outputFormat = new HanyuPinyinOutputFormat();
            outputFormat.setToneType(HanyuPinyinToneType.WITHOUT_TONE);
            String[] stringArray = PinyinHelper.toHanyuPinyinStringArray(item, outputFormat);

            if (stringArray.length == 0) {
                //處理字符不是漢字的情況
                pinYin += item;
            } else {
                pinYin += stringArray[0];
            }
        }
        return pinYin;
    }

    // 解釋
    public static void test() {
        HanyuPinyinOutputFormat outputFormat = new HanyuPinyinOutputFormat();
        // UPPERCASE:大寫  (ZHONG)
        // LOWERCASE:小寫  (zhong)
        outputFormat.setCaseType(HanyuPinyinCaseType.UPPERCASE);

        // WITHOUT_TONE:無音標  (zhong)
        // WITH_TONE_NUMBER:1-4數字表示英標  (zhong4)
        // WITH_TONE_MARK:直接用音標符(必須WITH_U_UNICODE否則異常)  (zhòng)
        outputFormat.setToneType(HanyuPinyinToneType.WITHOUT_TONE);

        // WITH_V:用v表示ü  (nv)
        // WITH_U_AND_COLON:用"u:"表示ü  (nu:)
        // WITH_U_UNICODE:直接用ü (nü)
        outputFormat.setVCharType(HanyuPinyinVCharType.WITH_U_AND_COLON);
    }
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章