释放双眼,带上耳机,听听看~!

package com.example.f;

import java.util.Comparator;

import net.sourceforge.pinyin4j.PinyinHelper;

public class PinyinComparator implements Comparator {

public int compare(String o1, String o2) {

for (int i = 0; i < o1.length() && i < o2.length(); i++) {

int codePoint1 = o1.charAt(i);

int codePoint2 = o2.charAt(i);

if (Character.isSupplementaryCodePoint(codePoint1) || Character.isSupplementaryCodePoint(codePoint2)) {

i++;

}

if (codePoint1 != codePoint2) {

if (Character.isSupplementaryCodePoint(codePoint1) || Character.isSupplementaryCodePoint(codePoint2)) {

return codePoint1 - codePoint2;

}

String pinyin1 = pinyin((char) codePoint1);

String pinyin2 = pinyin((char) codePoint2);

if (pinyin1 != null && pinyin2 != null) {

// 两个字符都是汉字

if (!pinyin1.equals(pinyin2)) {

return pinyin1.compareTo(pinyin2);

}

} else {

return codePoint1 - codePoint2;

}

}

}

return o1.length() - o2.length();

}

/** * 字符的拼音,多音字就得到第一个拼音。不是汉字,就return null。 */

private static String pinyin(char c) {

String[] pinyins = PinyinHelper.toHanyuPinyinStringArray(c);

if (pinyins == null) {

return null;

}

return pinyins[0];

}

}

//需要倒入pinyin4j-2.5.0.jar包!

}

}

}

}

}

android多音字排序,Android拼音排序相关推荐

  1. android中文首字母排序,Android上汉字按拼音排序如何实现?

    具体的代码在 packages\providers\contactsprovider\src\com\android\providers\contacts\ContactL ocaleUtils.ja ...

  2. db2 某个字段排序_db2 中文排序 按拼音排序(utf-8编码)

    需要在建库时指定 数据库整理顺序 表 2. 有效的整理语言环境名称 语言环境名称 语言(区域) 缺省整理属性                                               ...

  3. Android/Java汉字按照拼音排序

    汉字排序之前: peopleList.add(new NameBean("风四娘"));peopleList.add(new NameBean("连城璧")); ...

  4. android c 电话联系人,Android 联系人按中文拼音排序

    //查询所有数据按联系人姓名升序排序的方法 public List queryAll() { SQLiteDatabase db = helper.getReadableDatabase(); Cur ...

  5. android中文首字母排序,Android 实现中文按拼音排序方法

    难点:汉字转为拼音. https://github.com/promeG/TinyPinyin 是首先获取的Bean对象: for (int i = 0; i < dataList.size() ...

  6. Android 实现中文按拼音排序方法

    难点:汉字转为拼音. https://github.com/promeG/TinyPinyin 是首先获取的Bean对象: for (int i = 0; i < dataList.size() ...

  7. 手机通讯录java首字母排序,Android联系人按拼音排序以及按汉字首字母或全拼搜索...

    今天用了整整一下午去捣鼓这块,为什么模拟器上可以按拼音排序,中英文混排,及按字母搜索联系人,但到了开发板(平台是根据android2.2改过的)上就怎么不行了呢,虽然现在还没有解决,但也是知道了问题所 ...

  8. [Android]中国大部分城市地区的结构定义与按拼音排序

    项目中涉及到送货地址,录入工作量挺耗时的,分享出来,减免大家的重复劳动. 先见效果图如下:            本示例中使用Hashtable记录了中国大部分城市与地区的数据.其结构如下: Hash ...

  9. Android]中国大部分城市地区的结构定义与按拼音排序

    转自http://blog.csdn.net/sodino/article/details/6739522 项目中涉及到送货地址,录入工作量挺耗时的,分享出来,减免大家的重复劳动. 先见效果图如下: ...

  10. Android联系人按拼音排序以及按汉字首字母或全拼搜索

    转:http://blog.csdn.net/csuhanyong/article/details/6120935 今天用了整整一下午去捣鼓这块,为什么模拟器上可以按拼音排序,中英文混排,及按字母搜索 ...

最新文章

  1. 01背包【动态规划】
  2. “21天教你学会C++”
  3. Ctrl+Alt组合键在VMware虚拟机中如何使用
  4. jsp将数字转换为价格并求和_在JSP页面怎么实现求和操作和百分比操作
  5. spring 注释_Spring核心注释
  6. python animation set data_imshow.set_数据()不适用于FuncAnimation
  7. 有了C盘之后,添加另外一个磁盘的方法
  8. 叮!锦鲤素材到货啦~
  9. linux档案与文件的的压缩与打包
  10. 中国交互式智能板市场趋势报告、技术动态创新及市场预测
  11. 解决@media screen (自适应)IE浏览器不兼容问题
  12. Typora下载及使用
  13. 计算机的坚果云怎么删除,如何删除坚果云残留图标
  14. unity3d老电视花屏闪烁效果
  15. xmlserializer_更改XmlSerializer输出临时程序集的位置
  16. 机器学习---线性回归推导以及python实现
  17. 高通量测序的数据处理与分析指北(一)_network
  18. 能勾起你美好回忆的英文经典情歌二十首!绝对经典!
  19. 一个有成就感又有挫败感的日子
  20. oracle数据库加复合组件,浅谈oracle复合数据类型 (2)

热门文章

  1. leetcode 474. Ones and Zeroes | 474. 一和零(双约束背包问题)
  2. Leet Code OJ 338. Counting Bits [Difficulty: Medium]
  3. dict python用法_Python_Dict用法梳理
  4. PAT甲级 -- 1106 Lowest Price in Supply Chain (25 分)
  5. include指令与动作的区别【贴心,简洁】
  6. 43行代码AC_HDU-2604 Queuing(矩阵快速幂,附详细的知识讲解、模板例题)
  7. 解题报告——蓝桥杯 试题 基础练习 字符串对比——16行代码AC
  8. java培训第一阶段测试总结_java学习的第一阶段总结
  9. 形容等待时间长的句子_雅思听力该如何准确辨别句子结构?学会结构精听,雅思8分轻松get!...
  10. 桌面在计算机哪个文件夹,windows的桌面文件夹是哪个?