java按照汉字拼音首字母排序
实现按照汉字拼音字母排序的方法有两种:
一,就是在用java代码处理
要实现汉字按首字母排序,主要是设置语言环境,如下语句设置语言环境:
这里用到了Collator类,此类实现了Comparator接口,用他的getInstance就可以用指定的语言环境来构造一个Collator对象:
然后用如下语句创建Comparator:
Comparator<Object> com=Collator.getInstance(java.util.Locale.CHINA);
完整的代码如下:
import java.text.Collator;
import java.util.*;
import java.util.Comparator;
public class cpm { public static void main(String[] args) { // TODO Auto-generated method stub Comparator<Object> com=Collator.getInstance(java.util.Locale.CHINA); String[] newArray={"中山","汕头","广州","安庆","阳江","南京","武汉","北京","安阳","北方"}; List<String> list = Arrays.asList(newArray);Collections.sort(list, com); for(String i:list){ System.out.print(i+" "); }} }
就可以了,但是该方法要注意集合中输字符串,如果是对象就不行了,集合中要是对象就采取第二种方法,在MySQL的sql语句中处理,处理方法如下:
二:MySQL的处理方法:
mysql数据库中,若需要按照汉字的拼音排序,用的比较多是在人名的排序中,按照姓氏的拼音字母,从A到Z排序;
mysql对其排序分两种情况:
1、存储姓名的字段采用:GBK字符集
GBK内码编码时,其本身就采用了拼音排序的方法,
“查询语句+ order by name asc”--------- 查询结果按照姓氏的升序排序
2、存储姓名的字段采用: utf8字符集
排序的时候需要对字段进行转码。
“查询语句+order by convert(name using gbk) asc”------查询的结果也是按照姓氏的升序排序
mysql中的字符集不一样方法也不一样,处理的时候一定要注意!!!!!!
参考:https://blog.csdn.net/u014520745/article/details/42191945
https://blog.csdn.net/weixin_43307577/article/details/87942270
java按照汉字拼音首字母排序相关推荐
- 数据库按照汉字拼音首字母排序
===>sqlserver按照汉字拼音首字母排序 select * from table order by name collate Chinese_PRC_CS_AS_KS_WS 在修改sql ...
- C#按汉字拼音首字母排序
可参考以下博客. C# 使用微软的Visual Studio International Pack 类库提取汉字拼音首字母 - 影子科技 - 博客园 http://www.cnblogs.com/ya ...
- java获取汉字拼音首字母A
public class GetChinessFirstSpell{ /// <summary> /// 汉字拼音首字母列表 本列表包含了20901个汉字,用于配合 GetChineseS ...
- java取汉字拼音首字母含多音字及不常见的字
package com.anxin.ssk.common;import java.io.UnsupportedEncodingException; import java.util.HashMap; ...
- js根据汉字拼音首字母排序分组
最近有一个需求,就是做一个类似通讯录的玩意.这里其实前端的话网上挺多轮子的,直接改改就好了,但是有一点就是在得到汉字之后如何根据拼音的首字母排序并且分组就是一个小问题,当然解决起来也是挺简单的啰.由于 ...
- mysql 按汉字拼音首字母排序或聚合
看网上很多方法,都是转成gbk,然后截取第一个字,然后按字的gbk值的区间去获取A-Z,然后排序. ELT(INTERVAL(CONV(HEX(LEFT(CONVERT(TRIM(列名) USING ...
- MySQL按照汉字拼音首字母排序
按照汉字的拼音排序,用的比较多是在人名的排序中,按照姓氏的拼音字母,从A到Z排序: 如果存储姓名的字段采用的是GBK字符集,那就好办了,因为GBK内码编码时本身就采用了拼音排序的方法(常用一级汉字37 ...
- sql语句按照汉字拼音首字母排序
oracle : 在oracle9i中新增了按照拼音.部首.笔画排序功能.设置NLS_SORT值 SCHINESE_RADICAL_M 按照部首(第一顺序).笔划(第二顺序)排序 SCHINESE_S ...
- sql语句-按照汉字拼音首字母排序
在oracle9i之后就新增了按照拼音.部首.笔画排序功能.设置NLS_SORT值可以对相关数据进行排序. SCHINESE_RADICAL_M 按照部首(第一顺序).笔划(第二顺序)排序 SCHIN ...
最新文章
- (C++) A+B 输入输出练习IV 每行的第一个数N,表示本行后面有N个数。 如果N=0时,表示输入结束,且这一行不要计算。
- 导师:学CV的不懂目标检测?那你别学了
- 一种广泛存在于Facebook、谷歌、小米、阿里等公司的研发组织管理方式
- 【网络安全】一个堆题inndy_notepad的练习笔记
- mysql 高可用工具_MySQL Utilities 高可用工具体验
- 战神背光键盘如何关系_谁说轻薄和性能不可兼得?神舟战神Z7助你“清凉”一夏...
- vs2005配置OpenCv2.3.1
- 读《你的灯亮这么》---走出问题的乌托邦
- 关于oracle存储微信表情emoji问题 “[[%F0%9F%A4%AA]]“
- 部分UCI数据集分享
- 中兴B860 AV2.1 S905L刷入armbian并启用docker且使用Portainer汉化版控制面板
- 活性基因免疫靶向细胞疗法
- 两行命令查看wifi密码
- 企业核心-不是技术而是人才
- 前端将List列表转化为树型结构(reduce函数)
- 使用JS进行日期计算
- 华为云认证有什么用?怎么考?
- [PC] 微软账号连接不上
- Flink 1.12.2 源码浅析 : JobGraph
- Hypervisor---虚拟化技术简易说明
热门文章
- 机房收费系统——添加删除用户窗体
- 饥荒联机版虚拟服务器洞穴,TGP饥荒专用服务器创建地表+洞穴教程
- 排序java算法—— 希尔排序(含克努特排列)
- 鸿蒙系统手机年底前上市售价,【华为仍在测试鸿蒙系统手机,年底前上市售价或 2 千左右|据产业链最新消息称】_青海龙网...
- AI正在往哪里去?这有一份来自腾讯AI Lab的2018答卷
- Azkaban的安装教程
- 武林外传经典对话大全
- [机器学习] 代价函数(cost function)
- java邮件发送报错: Couldn‘t connect to host, port: smtp.exmail.qq.com, 25; timeout -1
- 树莓派安装系统详细步骤