有一列乱序的字符:'a','c','f','z','b','u','e','d'
排序并按照英文字母表的升序输出。当时纠结了好久,怎么能判断第一个字母是‘a’第二个字母是‘b’呢
后来我试了一下,原来直接用sort()就行了。。到这就不明白了。。为什么sort()真的会根据英文字母表去排序下去呢??

解决方案 »

  1.   

    Arrays.sort(char[] c)方法是按照数组的元素的ascii码来排序的,而ascii码刚好也是符合英文字母表的,也就是b的ascii码大于a的,c的ascii码大于b的,依次类推,所以就能按照因为字母表排序了
      

  2.   

    很明显是按ascii码顺序排,甚至可以排符号...
      

  3.   

    char c1 = 'a';
    char c2 = 'b';
    System.out.printf("LZ可以自己查看每个字符的ascii码,a[%c]=%d,b[%c]=%d\n", c1,(int)c1,c2,(int)c2);//所以就可以通过比较ascii码来排序
    char[] c = {'a','c','f','z','b','u','e','d'};
    for (int i=0; i<c.length; i++) {
        for (int j=1; j<c.length-i; j++) {
            if (c[j] < c[j-1]) { //这里就是比较字符的ascii码
                char t = c[j];
                c[j] = c[j-1];
                c[j-1] = t;
            }
        }
    }
    System.out.println(Arrays.toString(c));
      

  4.   

    A=16,B=17..
    a=65,b=66..http://ascii.911cha.com/
      

  5.   

    是根据ascii吗来排序的,例如'a'=95,'b'=96,所以sort后'a'就在'b'前面了。不过有的情况不是很理想,譬如字符串"1","2","10",sort后会变成"1","10","2"
      

  6.   

    eclipse直接调用sort方法,接着debug,然后你进去看算法就好了。
    看它是怎么用的。