2016-04-22 4 views
2

Es gibt eine Namensliste ohne Reihenfolge. Wie sortiere ich die Namensliste nach Alphabet? Was ich meine ist, wie man zwei Zeichenketten vergleicht, um größere herauszufinden? Gibt es eine existierende Methode oder Funktion, um dies zu tun, wie Java?Wie sortiere ich einen Namen (String) in Swift?

In Java können wir

"abc".compareTo("abb"); 

vergleichen Strings größer oder kleiner verwenden.

+0

@ marek-r Ich habe Ihre Bearbeitung abgebrochen, weil es irrelevante Tags eingeführt. Diese Frage bezieht sich nicht auf NSString oder OSX (dieser Swift-Code kann Multiplattform sein). Bitte vermeiden Sie das Hinzufügen von Tags, die nicht benötigt werden. Vielen Dank. – Moritz

+1

@ kb920 Mein Kommentar zu Marek-R gilt auch für Sie. Diese Frage bezieht sich nicht auf iOS. Bitte fügen Sie keine irrelevanten Tags hinzu. Vielen Dank. – Moritz

Antwort

2

Ja. Sie können sortieren Funktion des Arrays wie unten,

let names = ["Chris", "Alex", "Ewa", "Barry", "Daniella"] 

var reversed = names.sort({s1,s2 in s1 < s2}) 

//var reversed = names.sort {$0 < $1} // Shorter version of Closure. 

print(reversed) 
+1

'names.sort (<)' –

+1

yeah @LeoDabus, das ist sogar sorter .. Cool .. –

+0

Beachten Sie auch, dass '<' wie oben verwendet lexikographischer Vergleich, der z. '" Daniella "vor" "alexanda" ", was möglicherweise nicht das ist, was das OP beabsichtigt. Um ohne Berücksichtigung der Groß-/Kleinschreibung zu sortieren, modifiziere das Obige z.B. 'let sortierte = names.sort {$ 0.lowercaseString <$ 1.lowercaseString}'. – dfri

Verwandte Themen