在java,Array中排序哪个字符串更大

时间:2016-10-11 15:52:30

标签: java arrays sorting

我想通过按字母顺序对数组中的字符串进行排序,但是我在参数类型中出错。

public class BubbleSort {
 public static String[] sortStringArray(String[] stringArray) {
     int s = stringArray.length;
     String temp;

        for (int i = 0 ; i < s; i++) {
            for (int j = 1; j < (s - i); j++) {
                    String a1 = stringArray[j - 1];
                    String b1 = stringArray[j];
                    int result = a1.compareTo(b1);
                if (result > stringArray[j]) {
                    temp = stringArray[j - 1];
                    stringArray[j - 1] = stringArray[j];
                    stringArray[j] = temp;
                }

            }
        }
    return stringArray;
 }
}

3 个答案:

答案 0 :(得分:2)

由于您在String上呼叫compareTo(Object),您需要检查结果是否大于零:

if (0 < result) { // i.e. a1 is smaller than b1
    //swap values as usual
}

答案 1 :(得分:0)

要按自然顺序对String数组进行排序,可以使用Arrays.stream

例如:

String[] s = {"b", "c", "a", "aaa", "abc"};
s = Arrays.stream(s).sorted().toArray(String[]::new);

给出s= [a, aaa, abc, b, c]

答案 2 :(得分:-1)

if (result > stringArray[j])

result是一个整数,stringarray[j]是一个字符串。

如果您的字符串是像stinrgArray这样的整数[j]值是&#34; 11&#34;那么您就不能像这样整数进行比较。并且你想比较它需要先将它解析为整数:

if(result > Integer.parseInt(stringArray[j]))