Java Sortieren alphanumerische Strings Beispiel
Java -Sortieren alphanumerische Zeichenfolgen Beispiel
Dieses Beispiel zeigt, dass die Sortierung einer Liste alphanumerischer Zeichenfolgen in Java mit einem benutzerdefinierten Komparator sortiert wird. Wir werden eine List
von Strings und die Collections.sort()
-Methode verwenden, mit der wir eine benutzerdefinierte Sortierlogik angeben können. Die integrierte
import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; import java.util.List; public class AlphanumericSort { public static void main(String[] args) { List<String> strings = new ArrayList<>(); strings.add("apple1"); strings.add("apple10"); strings.add("apple2"); strings.add("banana1"); strings.add("banana20"); strings.add("banana10"); strings.add("apple"); // Sort using a custom comparator Collections.sort(strings, new AlphanumericComparator()); System.out.println("Sorted strings:"); for (String str : strings) { System.out.println(str); } } static class AlphanumericComparator implements Comparator<String> { @Override public int compare(String s1, String s2) { int i = 0; while (i < s1.length() && i < s2.length()) { char c1 = s1.charAt(i); char c2 = s2.charAt(i); if (Character.isDigit(c1) && Character.isDigit(c2)) { int num1 = 0; int num2 = 0; while (i < s1.length() && Character.isDigit(s1.charAt(i))) { num1 = num1 * 10 + (s1.charAt(i) - '0'); i++; } while (i < s2.length() && Character.isDigit(s2.charAt(i))) { num2 = num2 * 10 + (s2.charAt(i) - '0'); i++; } return Integer.compare(num1, num2); } else if (Character.isDigit(c1)) { return 1; // Digits come after letters } else if (Character.isDigit(c2)) { return -1; // Digits come after letters } else if (c1 != c2) { return c1 - c2; // Compare characters } else { i++; } } return s1.length() - s2.length(); // Compare lengths if prefixes are equal } } }
implementieren, die die alphanumerische Natur der Saiten korrekt behandelt. Das obige Beispiel zeigt einen solchen Komparator. Dieser Komparator analysiert die Saiten, trennt die alphabetischen und numerischen Teile und vergleicht sie entsprechend. Dieser Ansatz vermeidet unnötige String -Conversions oder externe Bibliotheken, was zu einer effizienten Sortierung führt. - lexikografische Ordnung: Die Standard -String -Vergleich behandelt Zahlen lexikografisch. Dies bedeutet, dass "10" als "2" als "2" angesehen wird, was für die alphanumerische Sortierung falsch ist. Verwenden Sie immer einen benutzerdefinierten
Comparator
, um numerische Teile als Zahlen und nicht als Zeichenfolgen zu behandeln. Es muss zuerst die alphabetischen Teile und dann die numerischen Teile vergleichen, um die korrekte Bestellung zu gewährleisten. Führende Nullen sollten die Sortierreihenfolge nicht beeinflussen. Vermeiden Sie unnötige String -Manipulationen oder -konvertierungen innerhalb der Vergleichslogik. Das obige Beispiel zeigt einen effizienten Ansatz, der den Overhead minimiert. Erwägen Sie, Überprüfungen für Werte hinzuzufügen und sie angemessen zu behandeln. Bibliotheken wie Apache Commons Lang bieten Dienstprogramme an, die möglicherweise bei der Manipulation von String-Manipulationen (z. B. numerische Teile extrahieren) beitragen, aber sie bieten keinen fertigen alphanumerischen Sortierer. Das Erstellen eines benutzerdefinierten - ist im Allgemeinen der effizienteste und direkteste Ansatz für diese Aufgabe, da Sie die Sortierlogik genau steuern können, um Ihre spezifischen Anforderungen zu erfüllen. Die Verwendung externer Bibliotheken kann unnötige Overheads und Abhängigkeiten hinzufügen.
Comparator
, um numerische Teile als Zahlen und nicht als Zeichenfolgen zu behandeln. Es muss zuerst die alphabetischen Teile und dann die numerischen Teile vergleichen, um die korrekte Bestellung zu gewährleisten. Führende Nullen sollten die Sortierreihenfolge nicht beeinflussen. Vermeiden Sie unnötige String -Manipulationen oder -konvertierungen innerhalb der Vergleichslogik. Das obige Beispiel zeigt einen effizienten Ansatz, der den Overhead minimiert. Erwägen Sie, Überprüfungen für Das obige ist der detaillierte Inhalt vonJava Sortieren alphanumerische Strings Beispiel. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen











Fehlerbehebung und Lösungen für die Sicherheitssoftware des Unternehmens, die dazu führt, dass einige Anwendungen nicht ordnungsgemäß funktionieren. Viele Unternehmen werden Sicherheitssoftware bereitstellen, um die interne Netzwerksicherheit zu gewährleisten. ...

Lösungen zum Umwandeln von Namen in Zahlen zur Implementierung der Sortierung in vielen Anwendungsszenarien müssen Benutzer möglicherweise in Gruppen sortieren, insbesondere in einem ...

Die Verarbeitung von Feldzuordnungen im Systemdocken stößt häufig auf ein schwieriges Problem bei der Durchführung von Systemdocken: So kartieren Sie die Schnittstellenfelder des Systems und ...

Beginnen Sie den Frühling mit der Intellijideaultimate -Version ...

Bei Verwendung von MyBatis-Plus oder anderen ORM-Frameworks für Datenbankvorgänge müssen häufig Abfragebedingungen basierend auf dem Attributnamen der Entitätsklasse erstellt werden. Wenn Sie jedes Mal manuell ...

Konvertierung von Java-Objekten und -Arrays: Eingehende Diskussion der Risiken und korrekten Methoden zur Konvertierung des Guss-Typs Viele Java-Anfänger werden auf die Umwandlung eines Objekts in ein Array stoßen ...

Wie erkennt die Redis -Caching -Lösung die Anforderungen der Produktranking -Liste? Während des Entwicklungsprozesses müssen wir uns häufig mit den Anforderungen der Ranglisten befassen, z. B. das Anzeigen eines ...

Detaillierte Erläuterung des Designs von SKU- und SPU-Tabellen auf E-Commerce-Plattformen In diesem Artikel werden die Datenbankdesignprobleme von SKU und SPU in E-Commerce-Plattformen erörtert, insbesondere wie man mit benutzerdefinierten Verkäufen umgeht ...
