Suchen in Strings
Teil des Abschnitts Logik & Kontrollfluss der Swift-Journey von Coddy — Lektion 3 von 56.
Drei schnelle Prüfungen, ob ein Teilstring in einem anderen enthalten ist:
let email = "alice@coddy.tech"
print(email.contains("@")) // true
print(email.hasPrefix("alice")) // true
print(email.hasSuffix(".tech")) // truecontains nimmt beliebige Teilzeichenfolgen an, während hasPrefix und hasSuffix nur den Anfang oder das Ende prüfen. Sie alle unterscheiden zwischen Groß- und Kleinschreibung, wandeln Sie den String also zuerst in Kleinbuchstaben um, falls das relevant ist.
Kombiniere diese mit ! für eine schnelle Prüfung auf „Fehlen“:
if !email.contains("@") {
print("not a valid email")
}Aufgabe
EinfachLies eine einzelne Eingabezeile ein. Validiere sie als eine einfache E-Mail, indem du alle folgenden Punkte überprüfst:
- Sie enthält genau ein
@(verwendefilter+countauf den Zeichen) - Sie beginnt oder endet nicht mit
@ - Sie endet auf
.tech,.comoder.org(unabhängig von Groß-/Kleinschreibung)
Gib valid aus, wenn jeder Check bestanden wird, andernfalls invalid. Vergleiche mit der kleingeschriebenen Version der Eingabe.
Für die Eingabe alice@CODDY.TECH lautet die Ausgabe valid.
Spickzettel
Prüfen Sie, ob ein String einen Teilstring enthält oder mit einem beginnt/endet:
let email = "alice@coddy.tech"
email.contains("@") // true – irgendwo im String
email.hasPrefix("alice") // true – am Anfang
email.hasSuffix(".tech") // true – am EndeAlle drei sind case-sensitive (unterscheiden Groß- und Kleinschreibung). Verwenden Sie bei Bedarf zuerst .lowercased():
email.lowercased().hasSuffix(".tech")Verwenden Sie !, um auf Abwesenheit zu prüfen:
if !email.contains("@") { print("not a valid email") }Probier es selbst
let line = readLine()!
// TODO: validiere genau ein '@', nicht an den Rändern, Suffix in [.tech .com .org]
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