import java.util.ArrayList;
import java.util.List;
import java.util.*;/**
 * @author: deng
 * @date:  Feb 1, 2010 - 11:11:33 AM
 */
public class TestSort {

public static void main(String[] args) { String names[] = {"deng","jason","cbynietg","邓永胜","刘仁文"};
List<String> list = new ArrayList<String>();
for(String i:names){
list.add(i);
}
Collections.sort(list);
Iterator<String> it = list.iterator();
while(it.hasNext()){
System.out.println(it.next());
}
}
}结果:
cbynietg
deng
jason
刘仁文
邓永胜我想输出的结果是邓永胜在前,刘仁文在后,请问怎么做?String names[] ={"刘邦一","王二","李四","张三丰","赵晨光"};
排序后的结果是按字母来排序的:
李四
刘邦一
王二
赵晨光
张三丰

解决方案 »

  1.   

    这个你要先获取到姓氏的拼音,然后排序,还有多音字的情况,比如“重”到底是读chong还是读zhong呢?这两种拼音的排序就不一样了
      

  2.   


       public static void main(String[] args) { 
            // Collator 类是用来执行区分语言环境的 String 比较的,这里选择使用CHINA 
            Comparator cmp = Collator.getInstance(java.util.CHINA.CHINA); 
            String[] arr = {"张三", "李四", "王五", "刘六"}; 
            // 使根据指定比较器产生的顺序对指定对象数组进行排序。 
            Arrays.sort(arr, cmp); 
            for (int i = 0; i < arr.length; i++) 
                System.out.println(arr[i]); 
            System.out.println(); 
        } 
      

  3.   

    这篇文章好好看看
    http://vtyi.javaeye.com/blog/207264
      

  4.   


    Comparator cmp = Collator.getInstance(java.util.CHINA.CHINA);
    应该是
    Comparator cmp = Collator.getInstance(java.util.Locale.CHINA);Collator comparator = Collator.getInstance();
    comparator.compare("中文1","中文2");
      

  5.   

            // Collator 类是用来执行区分语言环境的 String 比较的,这里选择使用CHINA
            java.util.Comparator cmp = Collator.getInstance(java.util.Locale.CHINA);
            String[] arr =
            { "张三", "李四", "王五", "刘六" };
            // 使根据指定比较器产生的顺序对指定对象数组进行排序。
            java.util.Arrays.sort(arr, cmp);
            for (int i = 0; i < arr.length; i++)
                System.out.println(arr[i]);
      

  6.   

    邓永胜,刘仁文   用unicode表示的时候编码不一样的,我觉得应该是根据unicode编码来排序的
      

  7.   


    这都可以 每天来CSDN果然是有好处的