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
123
李四
王二六
王五
怡情
张三
赵六
分享到:
相关推荐
java集合某个字段按照中文拼音排序 java集合某个字段按照中文拼音排序
堆排序7.java 使用java实现的堆排序堆排序7.java 使用java实现的堆排序堆排序7.java 使用java实现的堆排序堆排序7.java 使用java实现的堆排序堆排序7.java 使用java实现的堆排序堆排序7.java 使用java实现的堆排序堆...
在Java中对于字符串数组的排序,我们可以使用Arrays.sort(String[])方法很便捷的进行排序。例如: String[] arrays = new String[] { gyu, sdf, zf, 大同, 收到, 地方, 三等分, 的人, 反对高铁, 泛代数, 上的投入...
主要介绍了Java实现拖拽列表项的排序功能,非常不错,具有参考借鉴价值,需要的朋友可以参考下
java实现中文排序,按数字字母汉字的顺序进行排序
堆排序12.java 使用java代码实现堆排序12.java 使用java代码实现堆排序12.java 使用java代码实现堆排序12.java 使用java代码实现堆排序12.java 使用java代码实现堆排序12.java 使用java代码实现堆排序12.java 使用...
堆排序10.java 使用java来实现堆排序10.java 使用java来实现堆排序10.java 使用java来实现堆排序10.java 使用java来实现堆排序10.java 使用java来实现堆排序10.java 使用java来实现堆排序10.java 使用java来实现堆...
Java ip 地址排序Java ip 地址排序Java ip 地址排序Java ip 地址排序
java 实现归并排序,有代码实现,复杂度分析,基本步骤,适合初学者吧,
Java实现六种常用排序 并用多线程进行速度比较(其实意义不大) 含有代码
主要是对java中将汉字按照拼音排序的实现代码进行了详细的分析介绍。需要的朋友可以过来参考下,希望对大家有所帮助
快速排序算法的Java实现。下载后把Package信息稍作修改即可运行。
用Java语言实现的各种排序 用Java语言实现的各种排序
java 中文姓氏 排序
Java排序算法实现 Java排序算法实现 Java排序算法实现
java中的各种排序实现
本程序可以将汉字轻松转换为汉语拼音,有需要的朋友下载
4. * 汉字按照拼音排序的比较器 5. * @author KennyLee 2009-2-23 10:08:59 6. * 7. */ 8.public class PinyinComparator implements Comparator<Object> { 9. public int compare(Object o1, Object o2) { 10...
Java实现的常见排序算法.pdfJava实现的常见排序算法.pdfJava实现的常见排序算法.pdfJava实现的常见排序算法.pdfJava实现的常见排序算法.pdfJava实现的常见排序算法.pdf
实现合并排序,插入排序,希尔排序,快速排序,冒泡排序,桶排序算法的java实现。