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

admin2024-05-15  0

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

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

ORDER BY CONVERT(表名.字段名 USING gbk) COLLATE gbk_chinese_ci ASC;

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

查询结果如下:
MYSQL和JAVA中将中文汉字按照拼音首字母排序,在这里插入图片描述,第1张

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

运行结果:
MYSQL和JAVA中将中文汉字按照拼音首字母排序,在这里插入图片描述,第2张

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

运行结果:
MYSQL和JAVA中将中文汉字按照拼音首字母排序,在这里插入图片描述,第3张

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明原文出处。如若内容造成侵权/违法违规/事实不符,请联系SD编程学习网:675289112@qq.com进行投诉反馈,一经查实,立即删除!