java、android拼音,中文姓名排序
http://blog.sina.com.cn/s/blog_81a9aa7e0100tizj.html
在java或者是android编程的时候,我们经常要用到对姓名或者其他字符串排序,现在我写写自己曾经做过的列子。
普通的数组字符串排序,通过构造器来实现:
假如在main方法中有String name[5] = {"one","张三","李四","王五","two"};
只要调用Arrays.sort(name,0,5,new Comparents());就可以了。
import java.text.Collator;
import java.util.Comparator;
import java.util.Locale;
public class Comparents implements Comparator<Object> {
@Override
public int compare(Object arg0, Object arg1) {
String one = (String)arg0;
String two = (String)arg1;
Collator ca = Collator.getInstance(Locale.CHINA);
int flags = 0;
if (ca.compare(one,two) < 0) {
flags = -1;
}
else if(ca.compare(one,two) > 0) {
flags = 1;
}
else {
flags = 0;
}
return flags;
}
}
在android中,我们经常要用到HashMap,经常用list存放HashMap,我们对List中的元素进行排序的时候,就要用到构造器了,下面具体用列子说说:
假如在main方法中有:
public List<HashMap<String, Object>> listitem;
listitem.add(new HashMap("name","one"));
listitem.add(new HashMap("name","张三"));
listitem.add(new HashMap("name","李四"));
listitem.add(new HashMap("name","王五"));
listitem.add(new HashMap("name","two"));
Comparent comparent = new Comparent();
Collections.sort(listitem, comparent);
其中在Comparent.java文件中定义方法如下:
import java.text.Collator;
import java.util.Comparator;
import java.util.HashMap;
import java.util.Locale; public class Comparent implements Comparator<Object> { @SuppressWarnings("unchecked")
@Override
public int compare(Object arg0, Object arg1) {
HashMap<String, Object> name1 = (HashMap<String, Object>)arg0;
HashMap<String, Object> name2 = (HashMap<String, Object>)arg1;
Collator ca = Collator.getInstance(Locale.CHINA);
int flags = 0;
if (ca.compare((String) name1.get("name"), (String)name2.get("name")) < 0) {
flags = -1;
}
else if(ca.compare((String) name1.get("name"), (String)name2.get("name")) > 0) {
flags = 1;
}
else {
flags = 0;
}
return flags;
}
}
java、android拼音,中文姓名排序的更多相关文章
- Java 随机生成中文姓名,手机号,邮编,住址
package lovo; import java.util.HashMap; import java.util.Map; /** * 随机生成中文姓名,性别,Email,手机号,住址 * @auth ...
- Android实现中文汉字笔划(笔画)、中文拼音排序、英文排序
发布时间:2018-11-16 技术:Android 概述 最近要做一个类似微信的,在登录界面选择国家地区的功能,微信有中文汉字笔画排序以及中文拼音排序等几种方式,如下所示: 简体中文 拼音排 ...
- SQL 用中文的拼音和笔画排序
SQL 用中文的拼音和笔画排序 城市按拼音排序: SELECT chineseName FROM [表名] order by chinesename collate Chinese_PRC_CS_ ...
- java中文拼音字母排序
package com.yputil.util; import java.text.CollationKey;import java.text.Collator;import java.util.Ar ...
- Java对中文进行排序
对中文进行排序,同样是得定义一个Comparator,下面上代码: import java.text.Collator; import java.util.ArrayList; import java ...
- mysql 中将汉字(中文)按照拼音首字母排序
因为数据库中可以设定表的编码格式,不同编码格式下,中文的排序有区别,下面分别介绍常用编码下的排序方法. 1.如果数据表的某字段的字符编码是 utf8_general_ci,排序写法: ORDER BY ...
- .NET转JAVA之拼音组件
PS:做了4年,自我感觉.NET到瓶颈了,而且公司并没有深入运用.NET技术的项目,自我学习感觉也没太大动力(请骂我懒T_T).再加上技术年限越往上走,了解到的.NET职业提升环境就越来越艰难(个人理 ...
- Android根据联系人姓名首字符顺序读取通讯录
Android根据联系人姓名首字符顺序读取通讯录 版权声明:本文为Zhang Phil原创文章,欢迎转载!转载请注明出处:http://blog.csdn.net/zhangphil 本文给出了A ...
- JAVA Collections工具类sort()排序方法
主要分析内容: 一.Collections工具类两种sort()方法 二.示例 一.Collections工具类两种sort()方法 格式一: public static <T extends ...
随机推荐
- 在docker容器中运行hello world!
在docker容器中运行hello world! docker容器可以理解为在沙盒中运行的进程.这个沙盒包含了该进程运行所必须的资源,包括文件系统.系统类库.shell 环境等等.但这个沙盒默认是不会 ...
- QT 学习笔记概述
以下笔记为在看书和实践的过程中的部分记录总结: 0. 窗口布局 1) 支持绝对布局和布局管理器布局; 2) 绝对布局不够灵活.无法自动调整大小,需要手动编写代码调整: 3) 布局管理器管理布局比较灵活 ...
- tcp 三次握手四次挥手
1.三次握手 置位概念:根据TCP的包头字段,存在3个重要的标识ACK.SYN.FIN ACK:表示验证字段 SYN:位数置1,表示建立TCP连接 FIN:位数置1,表示断开TCP连接 三次握手过程说 ...
- Wikidata和SparQL简介
知识库 数据库(Database)和SQL,相信我们大部分人都非常非常熟悉.但是“知识库”可能知道的人就要相对少一些. 知识库是一个相对比较新的概念,它其实是一堆“三元组”(类似于主-谓-宾)的组合, ...
- Java数据结构和算法(一)--栈
栈: 英文名stack,特点是只允许访问最后插入的那个元素,也就是LIFO(后进先出) jdk中的stack源码: public class Stack<E> extends Vector ...
- delphi 动态调用API
好处没有这个API 也可以启动程序只是调用会出错. function __IsNativeVhdBoot: Boolean; type TIsNativeVhdBoot = function( Nat ...
- 定位 absolute和relative比较
absolute:脱离原来位置定位.是相对于最近的有定位的父级进行定位;如果没有有定位的父级元素,就相对文档进行定位 relative:保留原来位置进行定位,相对于自己原来的位置进行定位 下面举两个例 ...
- 文艺平衡树(splay模板)
题干:splay模板,要求维护区间反转. splay是一种码量小于treap,但支持排名,前驱后继等treap可求的东西,也支持区间反转的平衡树. 但是有两个坏处: 1.splay常数远远大于trea ...
- 彻底卸载WIN10 OneDrive
彻底卸载WIN10 OneDrive @ECHO OFF %SystemRoot%\SysWOW64\OneDriveSetup.exe /uninstall RD "%UserProfil ...
- PHP中的预定义常量、类常量和魔术常量的区别
PHP 向它运行的任何脚本提供了大量的预定义常量.不过很多常量都是由不同的扩展库定义的,只有在加载了这些扩展库时才会出现,或者动态加载后,或者在编译时已经包括进去了. 对于一些基本的常量是这些常量在 ...