Teilstrings ersetzen
Teil des Abschnitts Logik & Kontrollfluss der Swift-Journey von Coddy — Lektion 5 von 56.
replacingOccurrences(of:with:) gibt einen neuen String zurück, bei dem jedes Vorkommen eines Teilstrings durch einen anderen ersetzt wurde:
let phone = "555-123-4567"
let digits = phone.replacingOccurrences(of: "-", with: "")
print(digits) // "5551234567"Wie die Case-Methoden gibt es einen neuen String zurück; das Original bleibt unverändert. Verketten Sie Aufrufe, wenn Sie mehrere Muster entfernen müssen:
let messy = " 555-123 4567 "
let clean = messy
.replacingOccurrences(of: "-", with: "")
.replacingOccurrences(of: " ", with: "")
print(clean) // "5551234567"Zwei Ersetzungen bedeuten zwei Durchläufe über den String. Für performance-kritischen Code bei riesigen Strings ist ein einzelner filter-Durchlauf über die Zeichen vorzuziehen; für die tägliche Arbeit sind verkettete Ersetzungen in Ordnung und gut lesbar.
Aufgabe
AnfängerLies eine einzelne Eingabezeile ein. Behandle sie als Satz und erstelle einen für eine URL geeigneten slug, indem du:
- Die Eingabe in Kleinbuchstaben umwandelst
- Jedes Leerzeichen durch ein
-ersetzt - Jedes
!,?und.Zeichen entfernst
Gib den resultierenden Slug aus.
Für die Eingabe Hello World! ist die Ausgabe hello-world. Für Is Swift Fun? ist die Ausgabe is-swift-fun.
Spickzettel
replacingOccurrences(of:with:) gibt einen neuen String zurück, bei dem jede Übereinstimmung ersetzt wurde:
let digits = "555-123-4567".replacingOccurrences(of: "-", with: "")
// "5551234567"Verketten Sie Aufrufe, um mehrere Muster zu verarbeiten:
let clean = "555-123 4567"
.replacingOccurrences(of: "-", with: "")
.replacingOccurrences(of: " ", with: "")Probier es selbst
let line = readLine()!
// TODO: Kleinschreibung, Leerzeichen durch Bindestriche ersetzen, ! ? . Zeichen entfernen
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