MYSQL和JAVA中将中文汉字按照拼音首字母排序

一、MYSQL将中文汉字按照拼音首字母排序

数据库使用的字符编码是utf8_general_ci,如下

sql 复制代码
ORDER BY CONVERT(表名.字段名 USING gbk) COLLATE gbk_chinese_ci ASC;

若是表查询,CONVERT中可以不添加表名。

查询结果如下:

二、JAVA中将中文汉字按照拼音首字母排序

1.String集合排序

java 复制代码
		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.对象集合排序

java 复制代码
		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);

运行结果:

相关推荐
后端AI实验室1 分钟前
等保三级整改,敏感数据加密,数十个系统——3个人用Cursor一周搞定了
java·ai
qq_334060213 分钟前
spring_springmvc_mybatis权限控制+boostrap实现UI
java·spring·mybatis
sunwenjian8869 分钟前
Spring Boot 整合 Druid 并开启监控
java·spring boot·后端
wuyikeer12 分钟前
windows同时安装两个不同版本的Mysql
windows·mysql·adb
1104.北光c°14 分钟前
基于Canal + Kafka的高可用关注系统:一主多从关系链
java·开发语言·笔记·分布式·程序人生·kafka·一主多从
Mem0rin15 分钟前
[Java]异常及其处理
java·开发语言
skiy16 分钟前
Spring boot创建时常用的依赖
java·spring boot·后端
早起的年轻人18 分钟前
告别Git仓库臃肿:一招解决Maven target目录误提交问题
java·git·maven
快乐柠檬不快乐24 分钟前
Java连接电科金仓数据库(KingbaseES)实战指南
java·开发语言·数据库
程序员清风26 分钟前
看完Anthropic研究才懂:你有多会问,AI就有多强!
java·后端·面试