PinyinUtil.java 4.65 KB
package com.gimi.common.cinema.utils;

import android.text.TextUtils;
import com.wugian.ping.PinYinHelper1;

/**
 * 拼音工具类
 *
 * @author lsf
 */
public class PinyinUtil {
    //    /**
//     * 将字符串中的中文转化为拼音,其他字符不变
//     *
//     * @param inputString
//     * @return
//     */
//    public static String getPinYin(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 chinese 汉字串
     * @return 汉语拼音首字母
     */
    public static String getFirstSpell(String chinese) {
//        StringBuffer pybf = new StringBuffer();
//        try {
//            char[] arr = chinese.toCharArray();
//            HanyuPinyinOutputFormat defaultFormat = new HanyuPinyinOutputFormat();
//            defaultFormat.setCaseType(HanyuPinyinCaseType.LOWERCASE);
//            defaultFormat.setToneType(HanyuPinyinToneType.WITHOUT_TONE);
//            for (int i = 0; i < arr.length; i++) {
//                if (arr[i] > 128) {
//                    String[] temp = PinyinHelper.toHanyuPinyinStringArray(arr[i], defaultFormat);
//                    if (temp != null & temp.length >= 1) {
//                        pybf.append(temp[0].charAt(0));
//                    }
//                } else {
//                    pybf.append(arr[i]);
//                }
//            }
//        } catch (Exception e) {
//            e.printStackTrace();
//        }
//        return pybf.toString().replaceAll("\\W", "").trim();
//        String shortPinyin = "";
//        try {
//            shortPinyin = PinyinHelper.getShortPinyin(chinese).replaceAll(" ", "");
//        } catch (PinyinException e) {
//            e.printStackTrace();
//        }

//        return shortPinyin;
        if (TextUtils.isEmpty(chinese)) {
            return "";
        }
        String[] firstHead = PinYinHelper1.getInstance().getFirstHead(chinese);
        return firstHead.length > 0 ? firstHead[0] : "";
    }


    /**
     * 获取汉字串拼音首字母,英文字符不变
     *
     * @param chinese 汉字串
     * @return 汉语拼音首字母
     */
    public static String getAllFirstSpell(String chinese) {
        return join(PinYinHelper1.getInstance().getFirstHead(chinese), ",");
//        final String firstHead = PinYinHelper1.getInstance().getFirstHead(chinese);
//        String shortPinyin = "";
//        shortPinyin = PinyinHelper.getAllShortPinyin(chinese).replaceAll(" ", "");
//        return shortPinyin;
    }

    private static String join(String[] arr, String flag) {
        StringBuffer strBuff = new StringBuffer();

        for (int i = 0, len = arr.length; i < len; i++) {
            strBuff.append(String.valueOf(arr[i]));
            if (i < len - 1) strBuff.append(flag);
        }

        return strBuff.toString();
    }

//    /**
//     * 获取汉字串拼音,英文字符不变
//     *
//     * @param chinese 汉字串
//     * @return 汉语拼音
//     */
//    public static String getFullSpell(String chinese) {
//        StringBuffer pybf = new StringBuffer();
//        char[] arr = chinese.toCharArray();
//        HanyuPinyinOutputFormat defaultFormat = new HanyuPinyinOutputFormat();
//        defaultFormat.setCaseType(HanyuPinyinCaseType.LOWERCASE);
//        defaultFormat.setToneType(HanyuPinyinToneType.WITHOUT_TONE);
//        for (int i = 0; i < arr.length; i++) {
//            if (arr[i] > 128) {
//                try {
//                    pybf.append(PinyinHelper.toHanyuPinyinStringArray(arr[i], defaultFormat)[0]);
//                } catch (BadHanyuPinyinOutputFormatCombination e) {
//                    e.printStackTrace();
//                }
//            } else {
//                pybf.append(arr[i]);
//            }
//        }
//        return pybf.toString();
//    }
}