需求:将一组数据按某一字段中文拼音排序
1、Test测试类:

PinyinComparator comparator = new PinyinComparator();       Collections.sort(strList, comparator);

其中strList中放置了数据,可以是任何对象,但要对PinyinComparator中的compare进行对应的修改,我Demo中为String[]。

2、PinyinComparator排序类:



public class PinyinComparator implements Comparator<Object> {    /**    * 比较两个字符串     */   public int compare(Object o1, Object o2) {        String[] name1 = (String[]) o1;      String[] name2 = (String[]) o2;      String str1 = getPingYin(name1[0]);      String str2 = getPingYin(name2[0]);      int flag = str1.compareTo(str2);     return flag;  }

   /**    * 将字符串中的中文转化为拼音,其他字符不变    *     * @param inputString     * @return    */   public String getPingYin(String inputString) {        HanyuPinyinOutputFormat format = new HanyuPinyinOutputFormat();      format.setCaseType(HanyuPinyinCaseType.LOWERCASE);        format.setToneType(HanyuPinyinToneType.WITHOUT_TONE);     format.setVCharType(HanyuPinyinVCharType.WITH_V);

       char[] input = inputString.trim().toCharArray();// 把字符串转化成字符数组       String output = "";

      try {         for (int i = 0; i < input.length; i++) {                // \\u4E00是unicode编码,判断是不是中文               if (java.lang.Character.toString(input[i]).matches(                       "[\\u4E00-\\u9FA5]+")) {                   // 将汉语拼音的全拼存到temp数组                   String[] temp = PinyinHelper.toHanyuPinyinStringArray(                           input[i], format);                    // 取拼音的第一个读音                  output += temp[0];              }             // 大写字母转化成小写字母                else if (input[i] > 'A' && input[i] < 'Z') {                    output += java.lang.Character.toString(input[i]);                   output = output.toLowerCase();               }             output += java.lang.Character.toString(input[i]);           }     } catch (Exception e) {           Log.e("Exception", e.toString());       }     return output;    }}

注:附件中仿微信联系人拼音分类列表为别人写的一个模仿微信联系的Demo,功能比较强大;另个附件是我写的测试程序,可以通过Test test = new Test();test.init();运行;

Android中文按拼音排序相关推荐

  1. silverlight4/5 修改源码实现 DataGrid 中文按拼音排序

    silverlight3的DataGrid中文按拼音排序,silverlight4/5不是,本文通过修改SDK DLL实现silverlight3的拼音排序. 老项目还是silverlight3的,升 ...

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

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

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

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

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

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

  5. 在node中,中文转拼音排序

    首先npm i transliteration 下载该资源 const { transliteration, slugify } = require('transliteration');//假设现在 ...

  6. ElasticSearch学习(四)—— 中文按拼音排序拼音检索

    使用pinyin分词器 下载拼音分词器https://github.com/medcl/elasticsearch-analysis-pinyin 解压进入目录elasticsearch-analys ...

  7. mysql实现中文根据拼音排序

    最近项目遇到一个要求,jqueryeasyui中的combobox下拉数据要根据输入的中文拼音排序. 如,输入"北",依次出现"北斗","北京&quo ...

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

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

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

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

  10. layui 改写 table 排序,填加中文按照拼音排序

    因为layui table默认的排序不支持中文拼音,改写layui源码来完成我们的需求 注意在layui官网下载到的layui代码是压缩后的,这里需要下载layui的源码 layui源码地址: 码云地 ...

最新文章

  1. “金三银四”跳槽需谨慎(送福利礼包)!
  2. Hibernate-day04
  3. acwing yxc总结时间算法复杂度
  4. P4324 [JSOI2016]扭动的回文串
  5. css3 3d旋转兼容模式下,前端CSS3: 3D旋转的问题 (请水神和毒舌放过)
  6. Linux学习_菜鸟教程_3
  7. java学习(53):接口的定义和创建
  8. 打印异常堆栈_定位生产问题时,异常堆栈莫名丢了,何解?
  9. android 媒体的uri,安卓 - 从相对路径+显示名称中获取媒体的URI或ID
  10. 注册表的监控 -- WIN9X
  11. iOS 常见的URL Schemes
  12. 修复小米路由器mini的USB口
  13. Edison:FL Studio中的常用音频录制与剪辑插件
  14. 微软服务器上市时间,微软Office 2010全球发布会时间确定
  15. Excel密码保护破解代码
  16. 孤立词语音识别(3)——计算MFCC系数
  17. 降温出门怎么穿?蕉内热皮重塑你对秋冬基本款的想象
  18. ArcMap模型构建器使用临时工作空间
  19. 怎么将计算机设置为光盘引导模式,bios怎么设置从光驱启动
  20. PDPS15(Tecnomatix_15.0)安装包及安装教程分享

热门文章

  1. 本科毕业设计(论文)格式最详细总结
  2. python zip压缩文件下载及解压
  3. 《封神演义》中的阐截二教之争 zz
  4. Java—计算球体积
  5. Python 高级:人工智能概述
  6. xp怎么看自己计算机密码,如何找回Windows XP系统密码啊?
  7. 参数检验与非参数检验
  8. Android 角标设置
  9. 《深入理解Java虚拟机》笔记04之垃圾收集算法
  10. 移动端网站优化需要具备哪些条件