2 lovepd1122 lovepd1122 于 2016.04.22 19:48 提问

初学者求大神解答JAVA问题

java中字符串数组排序 Arrays.sort() 是按西安大写后小写拍的 但是我想讲笑a排在B之前
有什么方法能实现
最好不是新建一个方法

4个回答

caozhy
caozhy   Ds   Rxr 2016.04.23 06:49
已采纳
 /* package whatever; // don't place package name! */

import java.util.*;
import java.lang.*;
import java.io.*;

class C implements Comparator
{
    public int compare(Object arg0, Object arg1)
    {
        String s1 = arg0.toString().toLowerCase();
        String s2 = arg1.toString().toLowerCase();
        return s1.compareTo(s2);
    }
}

class Ideone
{
    public static void main (String[] args) throws java.lang.Exception
    {
        String[] a = new String[] { "a", "b", "c", "A", "B", "C" };  
        Arrays.sort(a, new C());  
        for (int i = 0; i < a.length; i++)  
            System.out.println(a[i]);  
    }
}
caozhy
caozhy   Ds   Rxr 2016.04.23 06:49

结果
a
A
b
B
c
C

github_34226737
github_34226737   2016.04.22 20:49

你太天真了,写代码不就是为了按照自己的想法实现吗?还不新写一个方法。。。。。。。。
ASCLL码:
A~Z:65-90, a~z:97-122
char型在运算中取的是ASCLL码中的值,自己写判断排序。
学代码不要养成伸手党,要多动手,自己实现。

wojiushiwo945you
wojiushiwo945you   Ds   Rxr 2016.04.22 21:11

你是想忽略大小写按字母顺序吗?如果是的话就可以调用字符串的to Upper或者都转成小写统一就可以了。

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!