[网络摘抄] android提取拼音首字母

来源:互联网 发布:js求一个盒子的宽高 编辑:程序博客网 时间:2024/06/11 09:51

使用"pinyin4j-2.5.0.jar"包

    /**     * 获取汉字串拼音首字母,英文及特殊字符字符不变     *     * @param chinese 汉字串     * @return 汉语拼音首字母     */    public static String cn2FirstSpell(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++) {            Log.d("NEVER",String.valueOf(arr[i]));            if (arr[i] > 128) {                try {                    String[] _t = PinyinHelper.toHanyuPinyinStringArray(arr[i], defaultFormat);                    if (_t != null) {                        pybf.append(_t[0].charAt(0));                    }                } catch (BadHanyuPinyinOutputFormatCombination e) {                    e.printStackTrace();                }            } else {                pybf.append(arr[i]);            }        }        return pybf.toString().toLowerCase().trim();    }    /**     * 获取汉字串拼音,英文字符不变     *     * @param chinese 汉字串     * @return 汉语拼音     */    public static String cn2Spell(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();    }

原创粉丝点击