最近博主做的项目中需要做一个wap版的手机通讯录,下午整理了下思路,发现这个用户名怎么排序啊?产品经理说就做成和手机通讯录类似的就行(心中一万头神兽飘过),好吧,既然提出来了那就要想办法做,作为一个程序员就应该百折不挠!!

首先博主想到的是从前端解决这个问题,所以索性找找资料,看看有没有现成的代码,找了一小会,没发现什么好的js能处理好这件事,哎。。。博主前端渣啊,好吧,转向后台来处理,前端你就等着专心的展示数据吧!

查阅相关api发现Comparator这个接口竟然有这个功能,真是省了好大一部分时间,下面贴出代码:

package demo;

import java.text.Collator;
import java.util.Arrays;
import java.util.Comparator;

public class Test {
	 public static void main(String[] args) {
	  // Collator 类是用来执行区分语言环境的 String 比较的,这里选择使用CHINA
	  Comparator comparator = Collator.getInstance(java.util.Locale.CHINA);
	  String[] arrStrings = { "aa","AA","11","小菜","镜花8水月90", "www.noreplace.com", "花无缺", "镜花7水月90","小傻" };
	  // 使根据指定比较器产生的顺序对指定对象数组进行排序。
	  Arrays.sort(arrStrings, comparator);
	  for (int i = 0; i < arrStrings.length; i++)
	   System.out.println(arrStrings[i]);
	 }
}

以上先定义比较器,使用汉字比较器,然后直接调用方法就OK了,是不是很方便?哈哈哈!

运行结果:

11
aa
AA
www.noreplace.com
花无缺
镜花7水月90
镜花8水月90
小菜
小傻

这里是使用ASCII码 进行比较的,大家有兴趣可以去了解下。。。

更多内容敬请关注我的个人博客:镜花水月的博客     转载请带上出处链接,谢谢,www.noreplace.com