首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

java积累(一)------后端---Comparator比较器的用法(2)

java积累(一)------后端---Comparator比较器的用法(2)

自定义比较器----文本比较

上述的使用方法已经能够满足大部分的使用场景。只需要我们处理compare函数中的比较逻辑即可。(包括数组,字符串长度,时间等的比较都能满足)。

但是如果要比较文本内容的话,还是自定义比较器规则会方便一些。使用步骤也是一样的,只是在compare方法中我们需要定义一个规则器。


    package com.test;  
      
      
    import java.text.ParseException;  
    import java.text.RuleBasedCollator;  
    import java.util.Comparator;  
    import com.test.domain.User;  
     
     
    public class UserNameComparator implements Comparator<User> {  
      
        @Override  
        public int compare(User o1, User o2) {  
           String myrule = "<王<赵<李<张";   
           RuleBasedCollator myrulecollato = null;  
           try {  
               myrulecollato = new RuleBasedCollator(myrule);  
           } catch (ParseException e) {  
              e.printStackTrace();  
           }  
           return myrulecollato.compare(o1.getUsername(), o2.getUsername());  
        }  
    }  


这里 "王<赵<李<张" 就是我们规定的文本内容排序规则,这样的话 有王字的就会排在前面了。如果出现文本模糊匹配不准确的出来的排序不准确的话,只需要把全名写上就能准确排序了,比如"王五<赵六<李四<张三"
返回列表