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
greenProbier 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