Java 实现汉字按照首字母分组排序

记录一下,实现汉字按照首字母分组排序,以下图:app

1、实现思路:测试

1.将数据list 进行排序Collections,排序后是按照汉字字母排序的orm

二、循环找出26个字母,以字母为key,以list中相同首字母的数据为值(集合)blog

2、代码实现排序

这里须要用到pinyin4j-2.5.0.jar这个汉字转拼音的jar包get

一、这个是汉字转拼音的方法io

/**
     * 获取汉字串拼音,英文字符不变
     * @param chinese 汉字串
     * @return 汉语拼音
     */
    public static String getFullSpell(String chinese) {
        StringBuffer pybf = new StringBuffer();
        char[] arr = chinese.toCharArray();
        HanyuPinyinOutputFormat defaultFormat = new HanyuPinyinOutputFormat();
        defaultFormat.setCaseType(HanyuPinyinCaseType.UPPERCASE);
        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();
    }class

二、关键实现代码循环

三、测试调用方法

控制台输出:

 {     "A": ["阿拉伯"],     "B": [],     "C": [],     "D": [],     "E": [],     "F": [],     "G": [],     "H": [],     "I": [],     "J": [],     "K": [],     "L": ["李四", "李五"],     "M": [],     "N": [],     "O": [],     "P": [],     "Q": [],     "R": [],     "S": [],     "T": [],     "U": [],     "V": [],     "W": [],     "X": [],     "Y": [],     "Z": ["张三"] }