Aufteilen und Zusammenfügen
Teil des Abschnitts Logik & Kontrollfluss der Swift-Journey von Coddy. Lektion 4 von 56.
Zwei alltägliche Werkzeuge zum Arbeiten mit Text mit Trennzeichen. Beide stammen aus Foundation, das bereits importiert ist.
components(separatedBy:) zerlegt eine Zeichenfolge anhand des von dir übergebenen Trennzeichens in ein Array aus Strings:
let csv = "red,green,blue"
let parts = csv.components(separatedBy: ",")
print(parts) // ["red", "green", "blue"]Das Gegenteil ist joined(separator:) für jedes [String]:
let words = ["swift", "is", "fun"]
let line = words.joined(separator: " ")
print(line) // "swift is fun"Du wirst sie oft kombinieren: teilen, mit map transformieren und wieder zusammenfügen. Das Ergebnis von map auf einem [String] ist weiterhin ein [String], daher funktioniert joined direkt.
Aufgabe
EinfachLies eine einzelne Eingabezeile ein: eine durch Kommas getrennte Liste von Wörtern.
Gib drei Zeilen aus:
- Die Anzahl der Wörter nach dem Aufteilen an
, - Die mit
>(Leerzeichen, Größer-als-Zeichen, Leerzeichen) wieder zusammengefügten Wörter 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
greenProbier es selbst
let line = readLine()!
let words = line.components(separatedBy: ",")
// TODO: Anzahl ausgeben, uppercased verbunden mit " > ", 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 TrimSuchen in StringsAufteilen und ZusammenfügenTeilstrings ersetzenRückblick – Benutzernamen prüfen4Mengen
Mengen erstellenVereinigung und SchnittmengeSubtraktion und symmetrische DifferenzTeilmenge und ObermengeWiederholung – Tag-Filter7Projekt – Gewohnheitstracker
ProjektübersichtAls erledigt markieren2Bereiche & Schrittweiten
Geschlossen vs. halboffenSchrittweiteBereichsmethodenBereiche in SwitchRückblick – Kalender-Raster5Funktionen höherer Ordnung Teil 1
MapFilterReduceVerketten von Map, Filter und ReduceRückblick – WortstatistikÜbe selbstständig: Swift-Playground