Die Contains-Methode
Teil des Abschnitts Grundlagen der Kotlin-Journey von Coddy. Lektion 82 von 93.
Eine häufige Aufgabe bei der Arbeit mit Listen besteht darin zu prüfen, ob ein bestimmtes Element in der Sammlung vorhanden ist. Kotlin stellt hierfür die Methode contains() bereit, die true zurückgibt, wenn das Element gefunden wird, und andernfalls false.
val fruits = listOf("Apple", "Banana", "Orange")
println(fruits.contains("Banana")) // true
println(fruits.contains("Grape")) // falseKotlin bietet außerdem eine besser lesbare Alternative mit dem Operator in, der genau dasselbe tut:
val numbers = listOf(1, 2, 3, 4, 5)
println(3 in numbers) // true
println(10 in numbers) // falseDu kannst auch prüfen, ob ein Element nicht in einer Liste enthalten ist, indem du !in verwendest:
val colors = listOf("Red", "Green", "Blue")
if ("Yellow" !in colors) {
println("Yellow is not available")
}Diese Prüfungen funktionieren auch mit Zeichenketten und ermöglichen es dir zu überprüfen, ob ein Zeichen oder eine Teilzeichenkette vorhanden ist:
val word = "Kotlin"
println('K' in word) // true
println("otl" in word) // trueDer in-Operator ist besonders in bedingten Anweisungen nützlich und macht deinen Code ausdrucksstärker und leichter lesbar, als eine Liste manuell zu durchlaufen, um ein Element zu finden.
Aufgabe
MittelDu erhältst eine Liste erlaubter Benutzernamen und einen zu überprüfenden Benutzernamen. Bestimme mithilfe des Operators in, ob der Benutzername in der Liste der erlaubten Benutzernamen vorhanden ist.
Wenn sich der Benutzername in der Liste befindet, gib Access granted aus. Wenn sich der Benutzername nicht in der Liste befindet, gib Access denied aus.
Eingabeformat:
- Erste Zeile: eine Ganzzahl
n, die die Anzahl der erlaubten Benutzernamen angibt - Die nächsten
nZeilen: Zeichenfolgen, die die erlaubten Benutzernamen darstellen - Letzte Zeile: der zu überprüfende Benutzername
Ausgabeformat:
Gib abhängig davon, ob der Benutzername in der Liste der erlaubten Benutzernamen vorhanden ist, entweder Access granted oder Access denied aus.
Beispiel:
Wenn die Liste der erlaubten Benutzernamen ["alice", "bob", "charlie"] enthält und der zu überprüfende Benutzername bob ist, sollte die Ausgabe wie folgt aussehen:
Access grantedWenn der zu überprüfende Benutzername david ist, sollte die Ausgabe wie folgt aussehen:
Access deniedProbier es selbst
fun main() {
// Lies die Anzahl der erlaubten Benutzernamen
val n = readLine()!!.toInt()
// Lies die erlaubten Benutzernamen in eine Liste
val allowedUsernames = mutableListOf<String>()
for (i in 1..n) {
allowedUsernames.add(readLine()!!)
}
// Lies den zu überprüfenden Benutzernamen
val usernameToCheck = readLine()!!
// TODO: Schreibe deinen Code darunter
// Verwende den 'in'-Operator, um zu prüfen, ob usernameToCheck in allowedUsernames existiert
// Print "Access granted" if found, "Access denied" if not
}Diese 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-OperatorErweiterte ZuweisungVergleichsoperatorenRückblick – Einfache Mathematik7Grundlegende Ein-/Ausgabe
println-FunktionString-VorlagenReadLine-EingabeTypkonvertierungWiederholung – Jahre bis zur RenteWiederholung – Wahr oder falsch10Funktionen
Eine Funktion deklarierenParameter und ArgumenteRückgabewerteBenannte ArgumenteStandardwerteFunktionen mit einem AusdruckRückblick – Sigma-FunktionRückblick – Validierungsfunktion2Variablen
Val vs VarTypinferenzZahlenStringBooleanNamenskonventionenRückblick – Variablen initialisieren5Operatoren Teil 2
Logische Operatoren Teil 1Logische Operatoren Teil 2Logische Operatoren Teil 3Ternär mit If-AusdruckWiederholung – Einfache Logik8Rechner zum Aufteilen der Rechnung
WillkommensnachrichtEingaben erfassen11FizzBuzz mit einer Wendung
SpielübersichtDie FizzBuzz-Funktion14Listen – Fortgeschrittene
List Slicing mit SubListList Slicing mit Take DropSequenzoperatorenDie Contains-MethodeWiederholung – Eine Seite durchsuchen3Nullbarkeit
Was ist Null-Sicherheit?Nullable-TypenOperator für sicheren AufrufElvis-OperatorGrundlagen der FunktionsaufgabeAssertion auf Nicht-NullRückblick – Sicherer Zugriff6Entscheidungen treffen
If-AnweisungIf - ElseIf als AusdruckWhen-AusdruckWhen mit BereichenRückblick - Einfacher Taschenrechner9Schleifen
For-SchleifeWhile-SchleifeDo-While-SchleifeBreakContinueBereiche in SchleifenVerschachtelte SchleifeRückblick – FakultätRückblick – Dynamische EingabeÜbe selbstständig: Kotlin-Playground