Android中文按拼音排序
需求:将一组数据按某一字段中文拼音排序
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中文按拼音排序相关推荐
- silverlight4/5 修改源码实现 DataGrid 中文按拼音排序
silverlight3的DataGrid中文按拼音排序,silverlight4/5不是,本文通过修改SDK DLL实现silverlight3的拼音排序. 老项目还是silverlight3的,升 ...
- android中文首字母排序,Android上汉字按拼音排序如何实现?
具体的代码在 packages\providers\contactsprovider\src\com\android\providers\contacts\ContactL ocaleUtils.ja ...
- 手机通讯录java首字母排序,Android联系人按拼音排序以及按汉字首字母或全拼搜索...
今天用了整整一下午去捣鼓这块,为什么模拟器上可以按拼音排序,中英文混排,及按字母搜索联系人,但到了开发板(平台是根据android2.2改过的)上就怎么不行了呢,虽然现在还没有解决,但也是知道了问题所 ...
- Android联系人按拼音排序以及按汉字首字母或全拼搜索
转:http://blog.csdn.net/csuhanyong/article/details/6120935 今天用了整整一下午去捣鼓这块,为什么模拟器上可以按拼音排序,中英文混排,及按字母搜索 ...
- 在node中,中文转拼音排序
首先npm i transliteration 下载该资源 const { transliteration, slugify } = require('transliteration');//假设现在 ...
- ElasticSearch学习(四)—— 中文按拼音排序拼音检索
使用pinyin分词器 下载拼音分词器https://github.com/medcl/elasticsearch-analysis-pinyin 解压进入目录elasticsearch-analys ...
- mysql实现中文根据拼音排序
最近项目遇到一个要求,jqueryeasyui中的combobox下拉数据要根据输入的中文拼音排序. 如,输入"北",依次出现"北斗","北京&quo ...
- android中文首字母排序,Android 实现中文按拼音排序方法
难点:汉字转为拼音. https://github.com/promeG/TinyPinyin 是首先获取的Bean对象: for (int i = 0; i < dataList.size() ...
- Android 实现中文按拼音排序方法
难点:汉字转为拼音. https://github.com/promeG/TinyPinyin 是首先获取的Bean对象: for (int i = 0; i < dataList.size() ...
- layui 改写 table 排序,填加中文按照拼音排序
因为layui table默认的排序不支持中文拼音,改写layui源码来完成我们的需求 注意在layui官网下载到的layui代码是压缩后的,这里需要下载layui的源码 layui源码地址: 码云地 ...
最新文章
- “金三银四”跳槽需谨慎(送福利礼包)!
- Hibernate-day04
- acwing yxc总结时间算法复杂度
- P4324 [JSOI2016]扭动的回文串
- css3 3d旋转兼容模式下,前端CSS3: 3D旋转的问题 (请水神和毒舌放过)
- Linux学习_菜鸟教程_3
- java学习(53):接口的定义和创建
- 打印异常堆栈_定位生产问题时,异常堆栈莫名丢了,何解?
- android 媒体的uri,安卓 - 从相对路径+显示名称中获取媒体的URI或ID
- 注册表的监控 -- WIN9X
- iOS 常见的URL Schemes
- 修复小米路由器mini的USB口
- Edison:FL Studio中的常用音频录制与剪辑插件
- 微软服务器上市时间,微软Office 2010全球发布会时间确定
- Excel密码保护破解代码
- 孤立词语音识别(3)——计算MFCC系数
- 降温出门怎么穿?蕉内热皮重塑你对秋冬基本款的想象
- ArcMap模型构建器使用临时工作空间
- 怎么将计算机设置为光盘引导模式,bios怎么设置从光驱启动
- PDPS15(Tecnomatix_15.0)安装包及安装教程分享