/ / Sortierung, welche Zeichenfolge in Java größer ist, Array - Java, Arrays, Sortierung

Sortieren, welche Zeichenfolge in Java größer ist, Array - Java, Arrays, Sortieren

Ich möchte die Zeichenfolgen im Array sortieren, indem ich sie alphabetisch sortiere. Bei Argumenttypen wird jedoch ein Fehler angezeigt.

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;
}
}

Antworten:

2 für die Antwort № 1

Da rufst du an compareTo(Object) auf Strings, Sie müssen dann überprüfen, ob das Ergebnis größer als Null ist:

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

0 für die Antwort № 2

Verwenden Sie diese Option, um ein String-Array in natürlicher Reihenfolge zu sortieren Arrays.stream

z.B:

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

gibt s= [a, aaa, abc, b, c]


-1 für die Antwort № 3
if (result > stringArray[j])

result ist eine ganze Zahl, stringarray[j] ist eine Zeichenfolge.

Sie können nicht mit einer solchen Ganzzahl vergleichen, wenn Ihre Zeichenfolge eine Ganzzahl wie stinrgArray [j] ist, der Wert "11", und wenn Sie sie vergleichen möchten, müssen Sie sie zuerst mit einer Ganzzahl analysieren:

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