Java用pinyin4j库实现汉字转拼音

来源:互联网 发布:数据挖掘的环节包括 编辑:程序博客网 时间:2024/05/21 22:42
public class PingYinUtil {    /**     * 将字符串中的中文转化为拼音,其他字符不变     *      * @param inputString     * @return     */    public static String getPingYin(String inputString) {        HanyuPinyinOutputFormat format = new HanyuPinyinOutputFormat();        format.setCaseType(HanyuPinyinCaseType.LOWERCASE);        format.setToneType(HanyuPinyinToneType.WITHOUT_TONE);        format.setVCharType(HanyuPinyinVCharType.WITH_V);        char[] input = inputString.trim().toCharArray();        String output = "";        try {            for (int i = 0; i < input.length; i++) {                if (java.lang.Character.toString(input[i]).matches(                        "[\\u4E00-\\u9FA5]+")) {                    String[] temp = PinyinHelper.toHanyuPinyinStringArray(                            input[i], format);                    output += temp[0];                } else                    output += java.lang.Character.toString(input[i]);            }        } catch (BadHanyuPinyinOutputFormatCombination e) {            e.printStackTrace();        }        return output;    }    /**     * 汉字转换位汉语拼音首字母,英文字符不变     *      * @param chines     *            汉字     * @return 拼音     */    public static String converterToFirstSpell(String chines) {        String pinyinName = "";        char[] nameChar = chines.toCharArray();        HanyuPinyinOutputFormat defaultFormat = new HanyuPinyinOutputFormat();        defaultFormat.setCaseType(HanyuPinyinCaseType.UPPERCASE);        defaultFormat.setToneType(HanyuPinyinToneType.WITHOUT_TONE);        for (int i = 0; i < nameChar.length; i++) {            if (nameChar[i] > 128) {                try {                    pinyinName += PinyinHelper.toHanyuPinyinStringArray(                            nameChar[i], defaultFormat)[0].charAt(0);                } catch (BadHanyuPinyinOutputFormatCombination e) {                    e.printStackTrace();                }            } else {                pinyinName += nameChar[i];            }        }        return pinyinName;    }}
    String aa="中国";    System.out.println(getPingYin(aa));    System.out.println(converterToFirstSpell(aa));    输出内容:    zhongguo    ZG
0 0