转来自: http://www.blogjava.net/jeff-lau/archive/2007/12/21/169257.html

中文排序 - 汉语拼音
摘要:中文一般都是按拼音来排序的。但Java中的String类是按Unicode编码存储数据的,因此,String类也是按Unicode编码的大小来排序的。Sun公司提供一个Collator类来重新按不同的规则对字符串排序,但Collator对中文的排序方式只是不严格的拼音排序法。Microsoft的Excel和Sql Server实现了按拼音排序的功能,就比Collator实现的好多了。那如何在Java中实现类似Microsoft的拼音排序的方式呢?

排序的方式主要有两种:一种是拼音,一种是笔画。本文就讲述如何实现这两种不同的比较器(Comparator)。

Unicode 编码中的汉字

Unicode中编码表分为两块,一个是基本的,一个是辅助的。现在的大多数操作系统还不支持Unicode中辅助区域中的文字,如WinXp。
在Java中的字符就是Unicode码表示的。对于Unicode基本区域中的文字,用两个字节的内存存储,用一个char表示,而辅助区域中的文字用4个字节存储,因此辅助区域中的就要用两个char来表示了(表一种蓝色底就是辅助区域中的文字)。一个文字的unicode编码,在Java中统一用codePoint(代码点)这个概念。
中文和日文、韩文一样是表意文字,在Unicode中,中日韩三国(东亚地区)的文字是统一编码的。CJK代表的就是中日韩。在这里,我把这3中文字,都作为汉字处理了。(日语和韩语可能就是从汉语中衍生的吧!)

GB2312编码

GB2312是中华人民共和国最早的计算机汉字编码方式。大概有6000多个汉字,这些汉字是按拼音顺序编码的。这6000多个汉字都是简体中文字。

GBK编码

GB2312的扩展,并兼容GB2312。扩展后的汉字大概有2万多个,其中有简体汉字也有繁体汉字。

中文【汉语拼音】排序相关推荐

  1. java list 拼音排序_java中实现List集合中对象元素按其属性的中文拼音排序

    java中List集合的元素是按照添加顺序排序的,我们在实际开发过程中,可能会遇到需要对其内容进行排序的场景,接下来对我遇到的场景所采用的解决方式做个总结. 一.业务场景 管理后台商户名称下拉列表,需 ...

  2. Java中文汉字排序

    概述 我们在应用程序中可能会经常遇到对中文排序的问题,例如姓名列表,词汇表等等.对中文排序,我们使用比较多的是根据汉语拼音发音来确定顺序. 我们可能会经常使用 java.util.Set接口, jav ...

  3. Java对中文进行排序

    一.Java排序 Java中类通常实现 Comparable接口或者 Comparator接口进行排序. 1.实现 Comparable接口 1)我们的类 实现 Comparable接口,重写 com ...

  4. Java数组中文排序_Java模块 -- 数组/集合中文汉字排序(支持生僻汉字)

    这里举例List集合 , 对list中的中文进行排序 , 按照中文拼音首字母. 支持生僻汉字的话 , 需要使用一个jar包 , 链接地址如下 传统的 : List list = new ArrayLi ...

  5. 汉字转拼音,中文拼音排序器

    汉字转拼音 NSMutableString *ms = [[NSMutableString alloc] initWithString:@"我是中国人"]; if (CFStrin ...

  6. db2 某个字段排序_MySQL、Oracle、DB2等数据库常规排序、自定义排序和按中文拼音字母排序...

    MySQL常规排序.自定义排序和按中文拼音字母排序,在实际的SQL编写时,我们有时候需要对条件集合进行排序. 下面给出3中比较常用的排序方式,mark一下 1.常规排序ASC DESC ASC 正序 ...

  7. TreeMap实现对中文的排序

    import java.util.TreeMap;/*** @author silence* TreeMap实现对中文的排序* TreeMap会根据键排序,String实现了Comparable接口实 ...

  8. mysql按中文拼音字母排序_解析MySQL按常规排序、自定义排序和按中文拼音字母排序的方法...

    MySQL常规排序.自定义排序和按中文拼音字母排序,在实际的SQL编写时,我们有时候需要对条件集合进行排序.下面给出3种比较常用的排序方式,一起看看吧 MySQL常规排序.自定义排序和按中文拼音字母排 ...

  9. PostgreSQL的中文拼音排序

    为什么80%的码农都做不了架构师?>>>    前一段时间开发人员咨询,说postgresql里面想根据一个字段做中文的拼音排序,但是不得其解.So,Take a Loooook. ...

  10. 按照拼音对数组中的中文字符串排序的算法

    按照拼音对数组中的中文字符串排序的算法,不是很难,这里直接放上代码,Demo去最下面找: 注:里面用到一个叫George的牛人写的中文转拼音首字母的函数pinyinFirstLetter,因为内容实在 ...

最新文章

  1. 8大行业场景!最新 Apache Flink 行业案例集火热出炉
  2. c++ 查找 list中最长的字符串_查找不重复字符的最长子字符串(编程面试中常见题-用8种编程语言来回答)...
  3. QScrollArea不能显示滚动条
  4. 8086标志操作指令
  5. 计算机桌面不来回变黑,电脑屏幕变小了左右黑几种解决方法
  6. 这是一台家庭计算机重启无效,我买了一台二手计算机,配置还可以,但有时会自动重启机器,这是为什? 爱问知识人...
  7. git学习指南_GIT 学习指南
  8. 两年时间,年薪从16到45,一个30岁程序猿的碎碎念
  9. 哪本最具影响力的书,是每个程序员都应该读的?
  10. 日志清理BAT脚本带输出日志
  11. DIM-00014: 无法打开windows nt服务控制管理器
  12. 多视几何009:对极几何
  13. GD32 汽车诊断协议J1850-PWM 测试
  14. 仓库温度湿度控制措施_仓库温湿度管理规定_仓库温湿度监测管理制度
  15. 微信小程序子组件向父组件传值的两个方法
  16. 碳中和背景下中国煤炭行业供需规模及投资战略研究分析报告2022-2028年版
  17. MySQL的进程状态
  18. OneNote for Windows 10 笔记丢失踩雷
  19. CSDN 创始人蒋涛:世界被编码之后
  20. nginx 禁止恶意域名解析

热门文章

  1. 研究node-red
  2. java 发送会议邮件模板_使用ical4j和javamail发送会议邀请
  3. linux下的串口调试助手——minicom
  4. 关于延迟段创建-P1
  5. 51串口向电脑发送数据(完整代码)+Proteus仿真
  6. 挤公交闲谈与虚析构函数精讲
  7. pdf转换成jpg python_python 把pdf转成图片文件
  8. ViewUI在vue中如何表格分页
  9. Linux下常用软件安装
  10. hpcp5225设置linux网络,hp cp5225驱动下载