午夜视频在线网站,日韩视频精品在线,中文字幕精品一区二区三区在线,在线播放精品,1024你懂我懂的旧版人,欧美日韩一级黄色片,一区二区三区在线观看视频

分享

java中文排序.

 hh3755 2011-09-06
  1. package lession;  
  2.   
  3. import java.io.UnsupportedEncodingException;  
  4. import java.text.Collator;  
  5. import java.util.Comparator;  
  6. import java.util.List;  
  7. import java.util.ArrayList;  
  8. import java.util.Collections;  
  9.   
  10. class User {  
  11.  String name;  
  12.  int age;  
  13.    
  14.  public User(String name,int age){  
  15.   this.name=name;  
  16.   this.age=age;  
  17.  }  
  18.  public int getAge() {  
  19.   return age;  
  20.  }  
  21.  public void setAge(int age) {  
  22.   this.age = age;  
  23.  }  
  24.  public String getName() {  
  25.   return name;  
  26.  }  
  27.  public void setName(String name) {  
  28.   this.name = name;  
  29.  }   
  30. }  
  31.   
  32. class ComparatorUser implements Comparator{  
  33.  Collator collator = Collator.getInstance(java.util.Locale.CHINA);  
  34.  public int compare(Object arg0, Object arg1) {  
  35.   User user0=(User)arg0;  
  36.   User user1=(User)arg1;  
  37.   String name0=toUTF_8(user0.getName());  
  38.   String name1=toUTF_8(user1.getName());  
  39.   int age0=user0.getAge();  
  40.   int age1=user1.getAge();  
  41.   //先比較名字再比較年齡  
  42.   int flag=collator.getCollationKey(name0).compareTo(collator.getCollationKey(name1));  
  43.   if(flag==0){  
  44.    return Integer.valueOf(age0).compareTo(Integer.valueOf(age1));  
  45.   }else{  
  46.    return flag;  
  47.   }    
  48.  }  
  49.  private static String toUTF_8(String str) {  
  50.      try {  
  51.          return new String(str.getBytes(), "ISO-8859-1");  
  52.      } catch (UnsupportedEncodingException e) {  
  53.          e.printStackTrace();  
  54.          throw new RuntimeException(e);  
  55.      }  
  56.  }  
  57. }  
  58.   
  59. public class SortTest {  
  60.   
  61.    
  62.  public static void main(String[] args){  
  63.   List userlist=new ArrayList();  
  64.   userlist.add(new User("吉斌",4));  
  65.   userlist.add(new User("何佳",1));  
  66.   userlist.add(new User("張哲",5));  
  67.   userlist.add(new User("段建波",6));    
  68.   userlist.add(new User("鄧斯奇",5));  
  69.   userlist.add(new User("鄧斯奇",3));  
  70.     
  71.   ComparatorUser comparator=new ComparatorUser();  
  72.   Collections.sort(userlist, comparator);  
  73.      
  74.   for (int i=0;i<userlist.size();i++){  
  75.    User user_temp=(User)userlist.get(i);  
  76.       System.out.println(user_temp.getName()+","+user_temp.getAge());   
  77.   }  
  78.     
  79.  }  
  80. }  

上面的程序?qū)崿F(xiàn)了,對中文的排序。 

默認(rèn)是根據(jù)字符串的ASCII/Unicode的編碼排序的,若想按照漢字的拼音排序,需要把字符串轉(zhuǎn)換編碼為iso-8859-1. 

如果你的文本是本地語言,而不是缺省語言,你需要傳遞一個(gè)本地語種給getInstance()方法 

    本站是提供個(gè)人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多