一、MYSQL将中文汉字按照拼音首字母排序
数据库使用的字符编码是utf8_general_ci,如下
ORDER BY CONVERT(表名.字段名 USING gbk) COLLATE gbk_chinese_ci ASC;
若是表查询,CONVERT中可以不添加表名。
查询结果如下:
二、JAVA中将中文汉字按照拼音首字母排序
1.String集合排序
List<String> list = new ArrayList<>();list.add("北京");list.add("上海");list.add("广州");list.add("深圳");list.add("长沙");Comparator comparator = Collator.getInstance(Locale.CHINA);list.sort(comparator::compare);list.stream().forEach(System.out::println);
运行结果:
2.对象集合排序
List<City> cityList = new ArrayList<>();cityList.add(new City(1, "北京"));cityList.add(new City(2, "上海"));cityList.add(new City(3, "广州"));cityList.add(new City(4, "深圳"));cityList.add(new City(5, "长沙"));// 获取中文环境Comparator comparator = Collator.getInstance(Locale.CHINA);// 排序Collections.sort(cityList, (e1, e2) -> {return comparator.compare(e1.getName(), e2.getName());});cityList.stream().forEach(System.out::println);
运行结果: