Heim >Backend-Entwicklung >Golang >Wie erreicht man eine Sortierung von String-Listen ohne Berücksichtigung der Groß-/Kleinschreibung in Go?
Sortierung ohne Berücksichtigung der Groß- und Kleinschreibung mit sort.Strings() in Go
Zum Sortieren von Zeichenfolgenlisten in Go ohne Berücksichtigung der Groß- und Kleinschreibung sollten Sie die Verwendung von sort in Betracht ziehen. Slice() bietet eine größere Flexibilität als sort.Strings().
Benutzerdefinierte Funktion für den Vergleich ohne Berücksichtigung der Groß- und Kleinschreibung
Sie können eine benutzerdefinierte Funktion an sort.Slice übergeben (), um Vergleiche ohne Berücksichtigung der Groß- und Kleinschreibung durchzuführen. Die folgende Funktion wandelt Zeichenfolgen in Kleinbuchstaben um, bevor sie verglichen werden:
<code class="go">func lowercaseCompare(s1, s2 string) bool { return strings.ToLower(s1) < strings.ToLower(s2) }</code>
Anwenden der benutzerdefinierten Funktion
So sortieren Sie die Listendaten mithilfe der benutzerdefinierten Funktion ohne Berücksichtigung der Groß- und Kleinschreibung:
<code class="go">sort.Slice(data, lowercaseCompare)</code>
Beispiel
Betrachten Sie die String-Listendaten := []string{"A", "b", "D", "c"}. Wenn Sie es mit der benutzerdefinierten Funktion ohne Berücksichtigung der Groß- und Kleinschreibung sortieren, erhalten Sie das Ergebnis ["A", "b", "c", "D"].
Effiziente Sortierung ohne Berücksichtigung der Groß- und Kleinschreibung
Der obige Ansatz weist für jeden Vergleich zwei neue Zeichenfolgen zu. Bei großen Stringlisten kann dies ineffizient sein. Um die Leistung zu verbessern, ziehen Sie einen Runen-für-Rune-Vergleich in Betracht:
<code class="go">func runeCompare(a, b string) bool { for { r1, s1 := utf8.DecodeRuneInString(a) r2, s2 := utf8.DecodeRuneInString(b) if r1 == utf8.RuneError || r1 == r2 { return s1 < s2 } a = a[s1:] b = b[s2:] } }</code>
Effiziente Sortierung mit runeCompare()
Um Daten effizient zu sortieren:
<code class="go">sort.Slice(data, runeCompare)</code>
Alternative Lösung: Paket sortieren
Für eine sprach- oder kulturspezifische Sortierung sollten Sie die Verwendung des Pakets collate in Betracht ziehen. Es bietet gebietsbezogene Sortierfunktionen.
Das obige ist der detaillierte Inhalt vonWie erreicht man eine Sortierung von String-Listen ohne Berücksichtigung der Groß-/Kleinschreibung in Go?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!