服务热线:13616026886

技术文档 欢迎使用技术文档,我们为你提供从新手到专业开发者的所有资源,你也可以通过它日益精进

位置:首页 > 技术文档 > JAVA > 新手入门 > 基础入门 > 查看文档

java基础:java编程中怎样实现中文排序

第一种情况:

  1.                   comparator cmp = collator.getinstance(java.util.locale.china);
  2.         
  3.         string[] arr = { "张三", "李四", "王五", "刘六" };
  4.         arrays.sort(arr, cmp);
  5.         for (int i = 0; i < arr.length; i++)
  6.             system.out.println(arr[i]);


第二种情况:

//comparablebean.java
import java.text.collationkey;
import java.text.collator;
import java.text.rulebasedcollator;
import java.util.comparator;

public class comparablebean{
    private string name;
    
    public comparablebean(string name) {
        
        this.name = name;
    }

    public string getname() {
        return name;
    }

    public void setname(string name) {
        this.name = name;
    }
}
class comparablebeancomparator  implements comparator//
{
    rulebasedcollator collator; // you can set your rules for the instance "collator"
    public comparablebeancomparator()
    {
        collator = (rulebasedcollator)collator.getinstance(java.util.locale.china);// try testing various locales
    }
    public int compare(object obj1, object obj2) {
        string tempname1 = ((comparablebean) obj1).getname();
        string tempname2 = ((comparablebean) obj2).getname();
        
        collationkey c1 = collator.getcollationkey(tempname1);
        collationkey c2 = collator.getcollationkey(tempname2);
//        return collator.compare(((collationkey) c1).getsourcestring(),
//                ((collationkey) c2).getsourcestring());
        return collator.compare(((collationkey) c2).getsourcestring(),
                ((collationkey) c1).getsourcestring());
    }
//    public int compare(comparablebean obj1, comparablebean obj2) {
//        string tempname1 = obj1.getname();
//        string tempname2 = obj2.getname();
//        
//        collationkey c1 = collator.getcollationkey(tempname1);
//        collationkey c2 = collator.getcollationkey(tempname2);
//        return collator.compare(((collationkey) c1).getsourcestring(),
//                ((collationkey) c2).getsourcestring());
//    }
}
//the end of comparablebean.java


测试代码:


                  comparablebean[] namecontent = { new comparablebean("一切从实际出发"),
                new comparablebean("立于不败之地"), new comparablebean("多项式"),
                new comparablebean("贯彻落实"), new comparablebean("密切联系群众"),
                new comparablebean("四项基本原则"), new comparablebean("咬牙切齿"),
                new comparablebean("恭恭敬敬"), new comparablebean("民警"),
                new comparablebean("经营承包责任制") };
        arrays.sort(namecontent,new comparablebeancomparator());
        for (int i = 0; i < namecontent.length; i++) {
            system.out.println(namecontent[i].getname());
        }