Gibt es eine native Möglichkeit, einen String nach seinem Inhalt in Java zu sortieren? Z.B
String s = "edcba" -> "abcde"
toCharArray
gefolgt von Arrays.sort
einem String-Konstruktor-Aufruf:
import java.util.Arrays;
public class Test
{
public static void main(String[] args)
{
String original = "edcba";
char[] chars = original.toCharArray();
Arrays.sort(chars);
String sorted = new String(chars);
System.out.println(sorted);
}
}
BEARBEITEN: Wie Tackline hervorhebt, schlägt dies fehl, wenn die Zeichenfolge Ersatzpaare oder zusammengesetzte Zeichen (Akzent + e als separate Zeichen) usw. enthält. An diesem Punkt wird es viel schwieriger ... hoffentlich brauchen Sie das nicht :) Darüber hinaus wird nur nach Ordnungszahl geordnet, ohne Groß- und Kleinschreibung, Akzente oder andere Faktoren zu berücksichtigen.
sorted
ist schon einString
... was würdest du erwarten, wenn dutoString()
es anrufst?char[] c = s.toCharArray(); Arrays.sort(c); String sorted = new String(c);
Nein, es gibt keine integrierte String-Methode. Sie können es in ein char-Array konvertieren, mit Arrays.sort sortieren und wieder in einen String konvertieren.
Oder wenn Sie mit länderspezifischen Dingen wie Großbuchstaben und Zeichen mit Akzent richtig umgehen möchten:
quelle
In Java 8 ist dies möglich mit:
Eine etwas kürzere Alternative, die mit einem Stream von Strings der Länge eins funktioniert (jedes Zeichen in der unsortierten Zeichenfolge wird in einen String im Stream konvertiert), ist:
quelle
In Zeichenarray konvertieren → Sortieren → Zurück in Zeichenfolge konvertieren :
quelle
Ein roherer Ansatz ohne Verwendung der sort Arrays.sort-Methode. Dies verwendet die Einfügesortierung.
quelle
Beachten Sie, dass dies nicht wie erwartet funktioniert, wenn es sich um eine Zeichenfolge in gemischter Groß- und Kleinschreibung handelt (Groß- und Kleinschreibung werden vor Kleinbuchstaben gesetzt). Sie können einen Komparator an die Sortiermethode übergeben, um dies zu ändern.
quelle
Vorgehensweise:
Code-Auszug:
quelle
Frage: Sortieren Sie einen String in Java
quelle
quelle
Ohne Verwendung von Sammlungen in Java:
Ausgabe:
quelle