2007-05-22
java中实现汉语拼音排序
关键字: java 拼音看了下发现确实有问题,看来汉字的字符集扩展的时候对排序考虑的不够周到。goolge下看到sf上有个pinyin4j的项目,虽然有点牛刀,但是可以解决这个问题,pinyin4j的项目地址是: http://pinyin4j.sourceforge.net/
另外javaeye上的zhangljerry 同学,希望你也能看看,因为你的帖子:http://zhangljerry.javaeye.com/blog/68333 中,用你的方法排序,"怡"还是会排在最后的。
代码如下:
java 代码
- package com.leondu;
- import java.util.Arrays;
- import java.util.Comparator;
- import java.util.List;
- import net.sourceforge.pinyin4j.PinyinHelper;
- public class PinyinComparator implements Comparator {
- private String concatPinyinStringArray(String[] pinyinArray) {
- StringBuffer pinyinStrBuf = new StringBuffer();
- if ((null != pinyinArray) && (pinyinArray.length > 0)) {
- for (int i = 0; i < pinyinArray.length; i++) {
- pinyinStrBuf.append(pinyinArray[i]);
- }
- }
- String outputString = pinyinStrBuf.toString();
- return outputString;
- }
- public int compare(Object o1, Object o2) {
- char c1 = ((String) o1).charAt(0);
- char c2 = ((String) o2).charAt(0);
- return concatPinyinStringArray(
- PinyinHelper.toHanyuPinyinStringArray(c1)).compareTo(
- concatPinyinStringArray(PinyinHelper
- .toHanyuPinyinStringArray(c2)));
- }
- public static void main(String[] args) {
- String[] data = { "孙", "孟", "宋", "尹", "廖", "张", "张", "张", "徐", "昆",
- "曹", "曾", "怡" };
- List
list = Arrays.asList(data); - Arrays.sort(data, new PinyinComparator());
- System.out.println(list);
- }
- }
结果
java 代码
- [曹, 曾, 昆, 廖, 孟, 宋, 孙, 徐, 怡, 尹, 张, 张, 张]
评论
leondu
2007-08-07
@spiritfrog & talangniao
sorry,我也只是用到了pinyin4j的一点点功能。
具体用法还是请到http://pinyin4j.sourceforge.net/ 查下doc,我印象中至少talangniao 的问题是可以解决的
sorry,我也只是用到了pinyin4j的一点点功能。
具体用法还是请到http://pinyin4j.sourceforge.net/ 查下doc,我印象中至少talangniao 的问题是可以解决的
talangniao
2007-08-06
我想人名要是很多:
我想分:
A:啊,阿..
B:波,伯...
C:迟,吃..
这样能实现吗?
怎样实现呢?
我想分:
A:啊,阿..
B:波,伯...
C:迟,吃..
这样能实现吗?
怎样实现呢?
spiritfrog
2007-06-07
其实汉语拼音只要按照首字首字母或者逐个字的首字母排序就好了,一般不会完整的去比较的.
spiritfrog
2007-06-07
挺有意思的东西, 如果是多音字的话,哪个拼音应该排在前面呢?
发表评论
- 浏览: 62831 次
- 性别:

- 来自: 广州

- 详细资料
搜索本博客
我的相册
nbrubyide
共 7 张
共 7 张
最近加入圈子
最新评论
-
acegi参考手册(v1.0.4)[ ...
也太忽悠我们这些读者了
-- by jason.hsu -
acegi参考手册(v1.0.4)[ ...
.................BS..................... ...
-- by jason.hsu -
让Netbeans也拥有缤纷颜色 ...
谢了,原来是在downloaded下面导入后,还要点击install...我以为 ...
-- by lgn21st -
让Netbeans也拥有缤纷颜色 ...
lgn21st 写道请问楼上如何安装呀?我下载下来只有两个jar包,在netbe ...
-- by devworks -
让Netbeans也拥有缤纷颜色 ...
请问楼上如何安装呀?我下载下来只有两个jar包,在netbeans 6.1RC版 ...
-- by lgn21st






评论排行榜