请问aa,Aa,Zb,Wa,cc,如果按照英文字母排序的话顺序是如何的?
我写的排序算法,怎么输出是Aa,Wa,Zb,aa,cc
A和a排序的时候难道先输出A?排序时为什么按照先大写后小写的顺序呢?请高手指点!谢谢拉!

解决方案 »

  1.   

    大写在前,小写在后(ABCD....abcd....),除非你使用忽略大小写的方法
      

  2.   

    onlykgx(还行) :
    java里忽略大小写英文字母的语句怎么写???
      

  3.   

    ASCII 码排序的   系统会去和 ASCII对比 然后显示  所以你排序的时候会出现 输出是Aa,Wa,Zb,aa,cc
      

  4.   

    compareToIgnoreCase(String str) 
    不考虑大小写,按字典顺序比较两个字符串。String 有这个方法
      

  5.   

    利用String.CASE_INSENSITIVE_ORDER(你写排序的一定知道java.lang.Comparable和java.util.Comparator吧,如果不是,则回去补课:D)比如
    String[] array = new String[] {"aa","Aa","Zb","Wa","cc"};
    Arrays.sort(array, String.CASE_INSENSITIVE_ORDER);
    for (int i = 0; i < array.length; i++) {
    System.out.println(array[i]);
    }
      

  6.   

    如果你真的不知道上面讲的Compar****接口,有个简单的办法,估计你的排序应该是基于比较的,比较的时候,都用大写,存放的时候还用原来的不就好了?
      

  7.   

    shine333(enihs):我原来是这样写的:把Data目录下文件排序!String k = "/Data";
    File f = new File(k);
    String names[] = f.list();Arrays.sort(names, new Comparator<String>() {
    public int compare(String o1, String o2) {
    String s1 = (String) o1;
    String s2 = (String) o2;
    return s1.toLowerCase().compareTo(s2.toLowerCase());
    }
    });
    for (int i = 0; i < names.length; i++) {....
    names[i]
    ...
    }
    你说我上面的程序改如何改呢?谢谢拉!
      

  8.   

    你自己实现一个Comparator<String>, 那不是在重复发明轮子嘛, 直接使用String.CASE_INSENSITIVE_ORDER 就可以了.Arrays.sort(names, new Comparator<String>() {
    public int compare(String o1, String o2) {
    String s1 = (String) o1;
    String s2 = (String) o2;
    return s1.toLowerCase().compareTo(s2.toLowerCase());
    }
    });改成
    Arrays.sort(names, String.CASE_INSENSITIVE_ORDER); 
    就可以了
      

  9.   

    jk88811(jkzqw) :
    Arrays.sort(names, String.CASE_INSENSITIVE_ORDER); //是忽略大小写的排序对吧!
    那不忽略大小写的正常排序语句又该如何写呢!谢谢拉!