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);

运行结果:

相关推荐
Miraitowa_cheems2 分钟前
LeetCode算法日记 - Day 106: 两个字符串的最小ASCII删除和
java·数据结构·算法·leetcode·深度优先
q***58194 分钟前
Spring全家桶简介
java·后端·spring
IT教程资源C9 分钟前
(N_141)基于springboot,vue网上拍卖平台
mysql·vue·前后端分离·拍卖系统·springboot拍卖
武昌库里写JAVA15 分钟前
微擎服务器配置要求,微擎云主机多少钱一年?
java·vue.js·spring boot·后端·sql
honortech19 分钟前
MySQL 8 连接报错:Public Key Retrieval is not allowed
数据库·mysql
q***829121 分钟前
MySQL--》如何通过选择合适的存储引擎提高查询效率?
数据库·mysql·adb
q***965824 分钟前
MySql-9.1.0安装详细教程(保姆级)
数据库·mysql
IUGEI25 分钟前
深入解析HTTP长连接原理
java·网络·后端·网络协议·tcp/ip·http·https
q***649727 分钟前
头歌答案--爬虫实战
java·前端·爬虫
凌波粒27 分钟前
SpringMVC基础教程(4)--Ajax/拦截器/文件上传和下载
java·前端·spring·ajax