1.有一个数组:f[a,A,h,f,H,F].
2.我要实现一个排序的效果:f[A,a,F,f,H,h].
先按字母顺序排列,再把每个字母的大写字母写在前面,小写放在后面。
3.请各位大虾指点迷津。

解决方案 »

  1.   

    呵呵,有意思。高深的快速排序之类的我不会,我就会一冒泡
    另外大小写可以用ignorecase等方法
    高深的不会
      

  2.   

    csdn怎么啦,高手都哪去啦?嘿,起床啦。
      

  3.   

    我用java api做了一个。
    import java.util.*;public class Test {

    public static void sort(char[] ca){
         List list = new ArrayList();
         for(int i=0; i<ca.length; i++) {
         list.add(String.valueOf(ca[i]));
         }
         Collections.sort(list, new Comparator() {
         public int compare(Object o1, Object o2){
         int result = 0;
         String s1 = o1.toString().toLowerCase();
         String s2 = o2.toString().toLowerCase();
         if(s1.equals(s2)){
         result = o1.toString().compareTo(o2.toString());
         } else{
         result = s1.compareTo(s2);
         }
         return result;
         }
         });
         for(int i=0; i<ca.length; i++) {
         ca[i] = (list.get(i).toString()).charAt(0);
         }
    }

        public static void main(String [] args) {
         char[] ca = new char[] {'a','b','A','h','f','H','g','F'};
         sort(ca);
         for(int i=0; i<ca.length; i++) {
         System.out.print(ca[i]);
         if(i<ca.length-1) {
             System.out.print(", ");
         }
         }
         }
    }
      

  4.   

    来个简单点的
    public static void main(String args[]){
    String a[]={"a","A","h","f","H","F"};
    Comparator c=new Comparator(){
    public int compare(Object el1, Object el2){
    String key1=el1.toString().toLowerCase()
               +"_"+el1.toString();
    String key2=el2.toString().toLowerCase()
               +"_"+el2.toString();

    return key1.compareTo(key2);
    }
    };
    Arrays.sort(a, c);
    for(int i=0;i<a.length;i++){
    System.out.println(a[i]);
    }
    }
      

  5.   

    原来csdn还有牛人在。我看错啦。哈哈。
      

  6.   

    很牛X,很牛X,很牛X,很牛,X很牛X