java中实现汉语拼音排序
来源:互联网 发布:程序员梗 编辑:程序博客网 时间:2024/05/22 15:15
Java提供的Collator拼音排序中,发现“怡”字总排在最后解决方案如下:
实现Comparator接口,利用pinyin4j将要比较的字符串转化成相应的拼音字符串,然后再比较。
所需jar包:pinyin4j-2.5.0.jar;下载地址:http://pinyin4j.sourceforge.net/
import java.util.Arrays; import java.util.Comparator; import net.sourceforge.pinyin4j.PinyinHelper; public class PinYinSort { public static void main(String[] args) { String[] arr={ "王二六","张三", "李四", "王五","赵六", "JAVA", "123","怡情"}; Arrays.sort(arr,new ComparatorPinYin()); for (String string : arr) { System.out.println(string); } } /** * 功能:实现汉语拼音序比较 * */ static class ComparatorPinYin implements Comparator<String>{ @Override public int compare(String o1, String o2) { return ToPinYinString(o1).compareTo(ToPinYinString(o2)); } private String ToPinYinString(String str){ StringBuilder sb=new StringBuilder(); String[] arr=null; for(int i=0;i<str.length();i++){ arr=PinyinHelper.toHanyuPinyinStringArray(str.charAt(i)); if(arr!=null && arr.length>0){ for (String string : arr) { sb.append(string); } } } return sb.toString(); } } }
排序结果:
Java代码
JAVA 123 李四 王二六 王五 怡情 张三 赵六
0 0
- java中实现汉语拼音排序
- java 实现汉语拼音排序
- java中文排序 - 汉语拼音
- 汉语拼音排序
- SQL Server中实现汉语拼音搜索
- 将汉字转换为汉语拼音java实现
- java代码实现汉字转汉语拼音
- ORACLE 中按汉语拼音对某字段进行排序
- oracle中查询的数据按汉语拼音首字母排序
- c# 汉语拼音排序函数
- oracle按照汉语拼音排序
- MySQL按照汉语拼音排序
- 汉语拼音转化类Java
- MySQL按照汉语拼音排序结果
- 中文转成汉语拼音(.net实现)
- 汉语拼音助记码(java)详解
- java将汉字转成汉语拼音
- java 取汉语拼音字母类
- c#操作Excel中的控件
- 简单了解ONVIF 协议
- 正在登陆,身份验证中,请您稍等
- sqlite 开启事务可以提高效率
- 关于UIHelper的两个自动递归获取节点的函数
- java中实现汉语拼音排序
- IOS简单的界面适配
- NYOJ-20 吝啬的国度
- android L 之SystemServer
- 驱动人生2015
- (十)Tomcat源码解析 - Tomcat总结
- iOS面试题(一)
- High Level Networking Concepts
- C++组合通信