一个数组String[] str = {"a","C","b","D","c","A","B","d"};
如何让这个数组按aAbBcCdD结果输出啊?

解决方案 »

  1.   

    为了简单,放弃了性能
    public class Main {
    public static void main(String[] args) {
    String[] str = { "a", "C", "b", "D", "c", "A", "B", "d" };
    for (int i = 0; i < str.length; i++) {
    str[i] = str[i].toUpperCase();
    }
    Arrays.sort(str, 0, str.length);
    for (int i = 0; i < str.length-1; i++) {
    if (str[i].equals(str[i+1])) {
    str[i] = str[i].toLowerCase();
    i++;
    }
    }
    for (int i = 0; i < str.length; i++) {
    System.out.println(str[i]);
    }
    }
    }
      

  2.   

      package test;import java.util.ArrayList;public class Test { public static ArrayList<String> list = new ArrayList<String>(); public static void sort(String s) {

    int i = list.size() - 1;
    for(;i >= 0; i--){
    if(!compare(s, list.get(i))){
    break;
    }
    }

    i++;
    list.add(i, s);
    }

    private static boolean compare(String a, String b){
    if(a.compareToIgnoreCase(b) == 0){
    return a.compareTo(b) > 0;
    }

    return a.compareToIgnoreCase(b) < 0;
    }

    public static void main(String[] args) {
    String[] str = { "a", "C", "b", "D", "c", "A", "B", "d" };
    for (String string : str) {
    sort(string);
    }

    System.out.println(list);

    }