Heim  >  Artikel  >  Java  >  String in Java sortieren

String in Java sortieren

王林
王林Original
2024-08-30 15:32:111041Durchsuche

Das Sortieren einer Zeichenfolge in Java ist keine integrierte Java-Funktion, bei der in der Java-Bibliothek eine direkte Methode zum Sortieren von Zeichenfolgen verfügbar ist, obwohl Java Techniken zum Sortieren von Arrays von Elementen mithilfe von Arrays.sort bereitstellt. Mit einigen verschiedenen Methoden, die von der Java-Bibliothek bereitgestellt werden, können wir in Java einfach sortieren und das Sortieren einer Zeichenfolge hat in jeder Java-Anwendung verschiedene Anwendungsfälle.

Starten Sie Ihren kostenlosen Softwareentwicklungskurs

Webentwicklung, Programmiersprachen, Softwaretests und andere

Wie sortiere ich Zeichenfolgen in Java auf verschiedene Arten?

Es verfügt über zwei Haupttechniken, die vom Entwickler je nach Anwendungsfall verwendet werden können.

  • Technik 1:Verwenden von Array.sort().
  • Technik 2:Verwenden eines benutzerdefinierten Komparators zum Sortieren der Zeichenfolge in Java.
  • Technik 3: Die Verwendung von Java 8 streamt Funktionen zusammen mit Strings.chars.

1. Technik 1 – Verwenden von Array.sort()

Dies ist eine sehr einfache und unkomplizierte Technik. Die Art und Weise, wie wir Arrays von Elementen in Java sortieren, ähnelt uns und es wird eine ähnliche Logik angewendet.

Um diese Technik umzusetzen, finden Sie unten die Schritte und ein Beispiel für diese Sortierung:

  • Schritt 1: Holen Sie sich die Eingabezeichenfolge vom Benutzer und konvertieren Sie die Eingabezeichenfolge mithilfe der Methode Arrays.toCharArray(), die in java.util.Arrays vorhanden ist, in ein Array von Zeichen
  • Schritt 2: Wenden Sie die natürliche Sortierung auf dieses neu erstellte Array von Zeichen an, indem Sie die Methode Arrays.sort verwenden, die auch im gleichen Jar java.util.Arrays vorhanden ist.
  • Schritt 3: Konvertieren Sie dieses sortierte Array von Zeichen mithilfe der Java-String-Klasse zurück in einen String und speichern Sie den neu erstellten String im String-Objekt, da Strings unveränderlich sind

Beispiel:

Code:

import java.util.Arrays;
import java.util.Scanner;
public class SortString {
public static void main(String args[]) {
Scanner scanner = new Scanner(System.in);
System.out.println("Input String Value which should be sorted : ");
String inputString = scanner.nextLine();
char arrayOfCharacters[] = inputString.toCharArray(); // Step 1
Arrays.sort(arrayOfCharacters); // Step 2
String sortedString = new String(arrayOfCharacters); // Step 3
System.out.println("Before Sorting :  " + inputString);
System.out.println("After Sorting :  " + sortedString);
}
}

Ausgabe:

String in Java sortieren
String in Java sortieren

Einschränkungen:

  • Dies geschieht idealerweise durch ein Java-Framework unter Verwendung des ASCII-Werts jedes Zeichens, das in der Zeichenfolge vorhanden ist.
  • Daher sollte diese Technik nur verwendet werden, wenn bei der erforderlichen Zeichenfolgensortierung die Groß-/Kleinschreibung beachtet wird. Das heißt, da der ASCII-Wert von Großbuchstaben kleiner als der von Kleinbuchstaben ist, wäre die Sortierung nicht korrekt, wenn Ihre Zeichenfolge beides hat Groß- und Kleinschreibung, also gemischte Zeichenfolgen.

Beispiel:

String in Java sortieren

Ausgabe:

String in Java sortieren

2. Technik 2 – Benutzerdefinierten Komparator verwenden

Diese Technik wird hauptsächlich verwendet, wenn die Eingabezeichenfolge aus gemischten Zeichen mit Klein- und Großbuchstaben bestehen kann. Dies ist keine einfache Technik wie oben und erfordert etwas mehr Codierung. Wir werden die gleiche Array-Sortiertechnik verwenden, die von Java bereitgestellt wird, aber zusätzlich werden wir einen Komparator verwenden, der uns hilft, jedes Zeichen in der Zeichenfolge zu vergleichen.

Um diese Technik zu implementieren, finden Sie unten die Schritte und ein Beispiel für diese Art der Zeichenfolgensortierung in Java.

  • Schritt 1: Holen Sie sich die Eingabezeichenfolge vom Benutzer und konvertieren Sie die Eingabezeichenfolge mithilfe der Java-for-Schleifenfunktion in ein Array von Zeichen.
  • Schritt 2: Wenden Sie die Java-Sortierung auf dieses neu erstellte Array von Zeichen an, indem Sie die Methode Arrays.sort zusammen mit dem Komparator verwenden, der die Groß-/Kleinschreibung während der Sortierung ignoriert und im selben Jar java.util.Arrays vorhanden ist.
  • Schritt 3: Konvertieren Sie dieses sortierte Zeichenarray mit der Java-Klasse StringBuilder zurück in einen String. Der neu erstellte String muss nicht im String-Objekt gespeichert werden, da StringBuilder veränderbar ist.

Beispiel:

Code:

import java.util.Arrays;
import java.util.Scanner;
import java.util.Comparator;
public class SortString {
public static void main(String[] args)
{
Scanner scanner = new Scanner(System.in);
System.out.println("Input a String Value which should be sorted : ");
String inputString = scanner.nextLine();
Character arrayOfCharacters[] = new Character[inputString.length()];
for (int i = 0; i < inputString.length(); i++) {
arrayOfCharacters[i] = inputString.charAt(i); // Step 1
}
Arrays.sort(arrayOfCharacters, new Comparator<Character>(){  // Step 2
@Override
public int compare(Character c1, Character c2)
{
return Character.compare(Character.toLowerCase(c1),
Character.toLowerCase(c2));
}
});
StringBuilder outputString = new StringBuilder(arrayOfCharacters.length);
for (Character c : arrayOfCharacters)
outputString.append(c.charValue());  // Step 3
System.out.println("Before Sorting : " + inputString);
System.out.println("After Sorting considering casing: " + outputString.toString());
}
}

Ausgabe:

String in Java sortieren

String in Java sortieren

Einschränkungen:

  • Diese Sortiertechnik ist eine ideale Methode zum Sortieren in Java, bei der die Eingabezeichenfolge ein beliebiger Wert mit Groß- und Kleinbuchstaben sein kann.
  • Es gibt keine grundsätzlichen Einschränkungen für diese Sortiertechnik, aber die Implementierung des Codes ist etwas langwierig.

3. Technik 3 – Verwendung von Java 8-Streaming-Funktionen zusammen mit der Strings.chars-Methode

Bei dieser Technik handelt es sich um eine neue Technik mit minimaler Codezeile und Verwendung von Java 8 Stream-Funktionen zusammen mit der String.chars-Methode, die nur in Java 8 integriert ist. Stellen Sie also sicher, dass Ihre Java-Anwendung diese Technik vor allem dann verwendet, wenn die Eingabezeichenfolge aus gemischten Zeichen mit Klein- und Großbuchstaben bestehen kann. Dies ist keine einfache Technik wie oben und erfordert etwas mehr Codierung. Wir werden die gleiche Array-Sortiertechnik verwenden, die von Java bereitgestellt wird, aber zusätzlich werden wir einen Komparator verwenden, der uns hilft, jedes Zeichen in der Zeichenfolge zu vergleichen.

Fazit

Das Sortieren eines Strings in Java ist sehr einfach und bietet viele verschiedene Ansätze, die der Entwickler je nach Anforderung der Anwendung verwenden kann. Es reicht vom 2-Zeilen-Code bis zum Schreiben einer völlig neuen Methode zum Sortieren und ermöglicht auch das Sortieren einer Zeichenfolge, indem auch die Groß-/Kleinschreibung ignoriert wird.

Das obige ist der detaillierte Inhalt vonString in Java sortieren. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Vorheriger Artikel:Einfügungssortierung in JavaNächster Artikel:Einfügungssortierung in Java