JAVA使用Collator对中文排序

首先创建一个集合

public static List<String> init() {
    List<String> list = new ArrayList<String>();
    list.add("李方");
    list.add("郭云2");
    list.add("郭云3");
    list.add("赵飞");
    list.add("马路");
    list.add("xxx");
    list.add("xxy");
    list.add("432");
    return list;
}

接下来开始排序

public static void sort() {
    List<String> list = init();
    Comparator<String> comparator = new Comparator<String>() {

        public int compare(String o1, String o2) {
            Collator collator = Collator.getInstance();
            return collator.getCollationKey(o1).compareTo(
                collator.getCollationKey(o2));
        }
    };
    Collections.sort(list, comparator);
    System.out.println(list);
    }

输出结果:

[432, xxx, xxy, 郭云2, 郭云3, 李方, 马路, 赵飞]

数字排在最前,英文字母其次,汉字则按照拼音进行排序。

posted @ 2020-07-10 15:46  一叶青川  阅读(805)  评论(0编辑  收藏  举报