Die Contains-Methode
Teil des Abschnitts Grundlagen der Swift-Journey von Coddy. Lektion 76 von 86.
Beim Arbeiten mit Arrays musst du häufig überprüfen, ob ein bestimmter Wert vorhanden ist, bevor du eine Aktion ausführst. Swift stellt dafür genau die Methode contains() bereit. Sie gibt true zurück, wenn das Element gefunden wird, und andernfalls false.
let fruits = ["apple", "banana", "orange"]
if fruits.contains("banana") {
print("We have bananas!")
}
// Wir haben Bananen!Das ist viel sauberer, als eine Schleife zu schreiben, um das Array manuell zu durchsuchen. Die Methode funktioniert mit jedem Array-Typ, unabhängig davon, ob es Zeichenketten, Zahlen oder andere Werte enthält:
let numbers = [10, 20, 30, 40, 50]
print(numbers.contains(30)) // true
print(numbers.contains(99)) // falseEin häufiger Anwendungsfall ist die Validierung von Benutzereingaben anhand einer Liste zulässiger Werte:
let validOptions = ["yes", "no", "maybe"]
let userInput = "yes"
if validOptions.contains(userInput) {
print("Valid choice")
} else {
print("Invalid choice")
}
// Gültige WahlDie Methode contains() funktioniert auch mit Zeichenketten, um zu prüfen, ob eine Teilzeichenkette in einer größeren Zeichenkette vorhanden ist:
let message = "Hello, Swift!"
print(message.contains("Swift")) // trueAufgabe
EinfachDu erhältst zwei Eingabezeilen:
- Eine durch Kommas getrennte Liste erlaubter Benutzernamen (z. B.
admin,user,guest,moderator) - Einen zu überprüfenden Benutzernamen
Überprüfe, ob der Benutzername in der Liste der erlaubten Benutzernamen vorhanden ist. Falls ja, gib Access granted aus. Falls nicht, gib Access denied aus.
Schritte:
- Lies die durch Kommas getrennte Liste ein und teile sie in ein Array von Zeichenfolgen auf
- Lies den zu überprüfenden Benutzernamen ein
- Verwende die Methode
contains(), um festzustellen, ob sich der Benutzername in der Liste der erlaubten Benutzernamen befindet - Gib abhängig vom Ergebnis die entsprechende Nachricht aus
Hinweis: Verwende components(separatedBy:), um eine Zeichenfolge in ein Array aufzuteilen. Zum Beispiel:
let text = "a,b,c"
let parts = text.components(separatedBy: ",")Probier es selbst
// Lies die kommagetrennte Liste der erlaubten Benutzernamen
let allowedList = readLine()!
// Lies den zu prüfenden Benutzernamen
let username = readLine()!
// TODO: Schreibe deinen Code darunter
// 1. Teile die allowedList mit components(separatedBy:) in ein Array auf
// 2. Verwende contains(), um zu prüfen, ob username im Array ist
// 3. Print "Access granted" or "Access denied" based on the resultDiese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.
Alle Lektionen in Grundlagen
4Operatoren Teil 1
Arithmetische OperatorenModulo-OperatorZusammengesetzte ZuweisungRückblick – Einfache MathematikVergleichsoperatoren7Grundlagen der Ein- und Ausgabe
Print-FunktionString-InterpolationReadLine-EingabeTypkonvertierungWiederholung – Bis 120Wiederholung – Wahr oder falsch10Funktionen
Eine Funktion deklarierenParameter und ArgumenteRückgabewerteArgumentbezeichnungenWiederholung – Sigma-FunktionWiederholung – ValidierungsfunktionStandardwerte13Über Sequenzen iterieren
Über Elemente iterierenDie Enumerate-MethodeÜber Strings iterieren Teil 1Über Strings iterieren Teil 22Variablen
let vs. varTypannotationenZahlenStringBooleanNamenskonventionenRückblick – Variablen initialisieren5Operatoren Teil 2
Logische Operatoren Teil 1Logische Operatoren Teil 2Zusammenfassung – Einfache LogikLogische Operatoren Teil 3Ternärer Operator8Rechner zum Teilen der Rechnung
WillkommensnachrichtEingaben erfassen11FizzBuzz mit einer Wendung
SpielübersichtDie FizzBuzz-Funktion14Arrays – Fortgeschritten
Array-Slicing Teil 1Array-Slicing Teil 2SequenzoperatorenDie Contains-Methode3Optionals
Was sind Optionals?Entpacken mit If LetGuard LetNil-Coalescing-OperatorZusammenfassung – Sicheres Entpacken6Entscheidungen treffen
If-AnweisungIf - ElseRückblick – Einfacher TaschenrechnerSwitch-AnweisungSwitch mit Bereichen9Schleifen
For-In-SchleifeWhile-SchleifeRepeat-While-SchleifeBreakContinueZusammenfassung – FakultätBereiche in SchleifenVerschachtelte SchleifeZusammenfassung – Dynamische EingabeÜbe selbstständig: Swift-Playground