Teilen und Zusammenfügen
Teil des Abschnitts Logik & Kontrollfluss der Swift-Journey von Coddy — Lektion 4 von 56.
Zwei alltägliche Werkzeuge für die Arbeit mit Text mit Trennzeichen. Beide stammen aus Foundation, das bereits importiert ist.
components(separatedBy:) zerlegt einen String in ein Array von Strings anhand des von Ihnen übergebenen Trennzeichens:
let csv = "red,green,blue"
let parts = csv.components(separatedBy: ",")
print(parts) // ["red", "green", "blue"]Das Gegenstück ist joined(separator:) bei jedem [String]:
let words = ["swift", "is", "fun"]
let line = words.joined(separator: " ")
print(line) // "swift is fun"Man wird sie oft kombinieren: aufteilen, mit map transformieren, wieder zusammenfügen. Das Ergebnis von map auf einem [String] ist immer noch ein [String], daher funktioniert joined direkt.
Aufgabe
EinfachLies eine einzelne Eingabezeile: eine durch Kommas getrennte Liste von Wörtern.
Gib drei Zeilen aus:
- Die Anzahl der Wörter nach dem Aufteilen bei
, - Die Wörter, wieder zusammengefügt mit
>(Leerzeichen, Größer-als-Zeichen, Leerzeichen), in Großbuchstaben - Das längste Wort aus der Liste (nach dem Aufteilen). Wenn zwei Wörter gleich lang sind, verwende dasjenige, das zuerst erscheint.
Für die Eingabe red,green,blue lautet die Ausgabe:
3
RED > GREEN > BLUE
greenSpickzettel
Teilen Sie einen String in ein Array auf, indem Sie components(separatedBy:) verwenden:
let parts = "red,green,blue".components(separatedBy: ",")
// ["red", "green", "blue"]Fügen Sie ein Array von Strings wieder zusammen, indem Sie joined(separator:) verwenden:
let line = ["swift", "is", "fun"].joined(separator: " ")
// "swift is fun"Häufiges Muster — Aufteilen, Transformieren mit map, wieder Zusammenfügen:
let result = "red,green,blue"
.components(separatedBy: ",")
.map { $0.uppercased() }
.joined(separator: " > ")
// "RED > GREEN > BLUE"Probier es selbst
let line = readLine()!
let words = line.components(separatedBy: ",")
// TODO: Anzahl ausgeben, mit " > " verbunden und in Großbuchstaben umgewandelt, erstes längstes Wort
Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.
Alle Lektionen in Logik & Kontrollfluss
1Strings im Detail
Zählen und IndizesGroß-/Kleinschreibung und TrimmenSuchen in StringsTeilen und ZusammenfügenTeilstrings ersetzenWiederholung – Benutzernamen-Check4Mengen
Mengen erstellenVereinigung und SchnittmengeDifferenz und symmetrische DifferenzTeilmenge und ObermengeRückblick – Tag-Filter7Projekt - Habit Tracker
ProjektübersichtAls erledigt markieren2Bereiche & Schrittweiten
Geschlossen vs. halboffenSchrittweiteRange-MethodenRanges in SwitchRückblick – Kalender-Grid5Funktionen höherer Ordnung Teil 1
MapFilterReduceVerkettung von map, filter, reduceRückblick – Wortstatistiken