如何根据中文字段的拼音进行排序?

rhj_2001 2003-08-22 11:35:07
跪求!
...全文
42 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
rhj_2001 2003-08-22
  • 打赏
  • 举报
回复
java里面没有这样的comparator么?
onefox 2003-08-22
  • 打赏
  • 举报
回复
http://expert.csdn.net/Expert/topic/2144/2144700.xml?temp=.6851313
网络咖啡 2003-08-22
  • 打赏
  • 举报
回复
难道没有别的方法了吗?

强烈关注
wangyanqiu 2003-08-22
  • 打赏
  • 举报
回复


up
star821116 2003-08-22
  • 打赏
  • 举报
回复
正如楼上的说得,这个只有做一个大的Map来对应,导入数据库里面
dalianzj 2003-08-22
  • 打赏
  • 举报
回复
赞成上面的观点!
hayai 2003-08-22
  • 打赏
  • 举报
回复
你必须有所有中文字的拼音对照表。如果你只是在学习Java,答案是,做不到。如果你在写商业软件,问你的project manager。如果你就是project leader,有人讨论过这个问题,去下载一个拼音大师软件,然后导出一张对造表。
Java代码 1.import java.util.Comparator; 2.import net.sourceforge.pinyin4j.PinyinHelper; 3./** 4. * 汉字按照拼音排序的比较器 5. * @author KennyLee 2009-2-23 10:08:59 6. * 7. */ 8.public class PinyinComparator implements Comparator { 9. public int compare(Object o1, Object o2) { 10. char c1 = ((String) o1).charAt(0); 11. char c2 = ((String) o2).charAt(0); 12. return concatPinyinStringArray( 13. PinyinHelper.toHanyuPinyinStringArray(c1)).compareTo( 14. concatPinyinStringArray(PinyinHelper 15. .toHanyuPinyinStringArray(c2))); 16. } 17. private String concatPinyinStringArray(String[] pinyinArray) { 18. StringBuffer pinyinSbf = new StringBuffer(); 19. if ((pinyinArray != null) && (pinyinArray.length > 0)) { 20. for (int i = 0; i < pinyinArray.length; i++) { 21. pinyinSbf.append(pinyinArray[i]); 22. } 23. } 24. return pinyinSbf.toString(); 25. } 26.}

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧