最近开发手机端OA系统通讯录时遇到了用汉字首字母排序的问题,各种谷歌后发现了一个轮子pinyin4J
,这个轮子是可以将汉字转换成字母拼音,个人觉得很好用,完美的解决了排序的问题,分享一下。
一.工具介绍
pinyin4j是一个支持将简体和繁体中文转换到成拼音的Java开源类库,作者是Li Min (xmlerlimin@gmail.com)。
- 支持同一汉字有多个发音
- 还支持拼音的格式化输出,比如第几声之类的,
- 同时支持简体中文、繁体中文转换为拼音…使用起来也非常简单。下面是其官方网址,其中提供了下载:
- *pinyin4j的官方下载地址[http://sourceforge.net/projects/pinyin4j/files/]
- 本文只是使用了pinyin4J的主要功能,还有更多更好耍的功能,大家可以去研究官网文档。哈哈
下载解压后的目录结构及说明如下
(1) doc
: pinyin4j的api文档
(2) lib
: pinyin4j的jar包
(3) src
: pinyin4j的源代码
(4) CHANGELOG.txt
: pinyin4j的版本更新日志
(5) COPYING.txt
: LICENSE说明
(6) README.txt
: pinyin4j的概要介绍
二.转换代码
|
|
三.实现 Comparable 接口并且使用内部类compare重载compareTo方法实现排序代码。
|
|
四.测试效果
测试效果
五.那么问题来了
这个列子只能按字符串第一个字符的首字母来排序,比如字符串张三
和赵五
第一个字符首字母是一样的,那能不能再通过第二个字符三
和五
来进行排序呐。如果字符串的第二个字符首字母也是一样的呐,依次类推。希望哪位大神好的思路交流交流,带我装逼带我飞。。。
六.JUST DO IT
。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。