Il metodo contains
Fa parte della sezione Fondamenti del percorso Kotlin di Coddy. Lezione 82 di 93.
Un'operazione comune quando si lavora con le liste è verificare se un elemento specifico è presente nella raccolta. Kotlin fornisce il metodo contains() a questo scopo, che restituisce true se l'elemento viene trovato e false altrimenti.
val fruits = listOf("Apple", "Banana", "Orange")
println(fruits.contains("Banana")) // true
println(fruits.contains("Grape")) // falseKotlin offre anche un’alternativa più leggibile usando l’operatore in, che fa esattamente la stessa cosa:
val numbers = listOf(1, 2, 3, 4, 5)
println(3 in numbers) // true
println(10 in numbers) // falsePuoi anche verificare se un elemento non è in una lista usando !in:
val colors = listOf("Red", "Green", "Blue")
if ("Yellow" !in colors) {
println("Yellow is not available")
}Questi controlli funzionano anche con le stringhe, consentendoti di verificare se esiste un carattere o una sottostringa:
val word = "Kotlin"
println('K' in word) // true
println("otl" in word) // trueL’operatore in è particolarmente utile nelle istruzioni condizionali e rende il codice più espressivo e facile da leggere rispetto a scorrere manualmente un elenco per trovare un elemento.
Sfida
MedioRiceverai un elenco di nomi utente consentiti e un nome utente da verificare. Determina se il nome utente è presente nell'elenco consentito usando l'operatore in.
Se il nome utente è nell'elenco, stampa Access granted. Se il nome utente non è nell'elenco, stampa Access denied.
Formato dell'input:
- Prima riga: un intero
nche rappresenta il numero di nomi utente consentiti - Le successive
nrighe: stringhe che rappresentano i nomi utente consentiti - Ultima riga: il nome utente da verificare
Formato dell'output:
Stampa Access granted oppure Access denied a seconda che il nome utente sia presente nell'elenco consentito.
Esempio:
Se l'elenco consentito è ["alice", "bob", "charlie"] e il nome utente da verificare è bob, l'output dovrebbe essere:
Access grantedSe il nome utente da verificare è david, l'output dovrebbe essere:
Access deniedProvalo tu
fun main() {
// Leggi il numero di nomi utente consentiti
val n = readLine()!!.toInt()
// Leggi i nomi utente consentiti in una lista
val allowedUsernames = mutableListOf<String>()
for (i in 1..n) {
allowedUsernames.add(readLine()!!)
}
// Leggi il nome utente da controllare
val usernameToCheck = readLine()!!
// TODO: Scrivi il tuo codice qui sotto
// Usa l'operatore 'in' per verificare se usernameToCheck è presente in allowedUsernames
// Stampa "Access granted" se trovato, "Access denied" altrimenti
}Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.
Tutte le lezioni di Fondamenti
4Operatori Parte 1
Operatori aritmeticiOperatore moduloAssegnazione compostaOperatori di confrontoRipasso: matematica semplice7Input/output di base
Funzione printlnTemplate di stringheInput con readLineConversione di tipoRiepilogo - Anni alla pensioneRiepilogo - Vero o falso10Funzioni
Dichiarare una funzioneParametri e argomentiValori di ritornoArgomenti denominatiValori predefinitiFunzioni a espressione singolaRiepilogo - Funzione SigmaRiepilogo - Funzione di validazione2Variabili
Val vs VarInferenza del tipoNumeriStringaBooleanoConvenzioni di denominazioneRiepilogo - Inizializzare le variabili5Operatori Parte 2
Operatori logici Parte 1Operatori logici Parte 2Operatori logici Parte 3Ternario con espressione ifRipasso - Logica semplice8Calcolatore per dividere il conto
Messaggio di benvenutoAcquisire i dati11FizzBuzz con un tocco
Panoramica del giocoLa funzione FizzBuzz14Liste: argomenti avanzati
Slicing delle liste con SubListSlicing delle liste con Take e DropOperatori di sequenzaIl metodo containsRiepilogo - Cerca una pagina3Nullabilità
Cos'è la null safetyTipi nullableOperatore di chiamata sicuraOperatore ElvisBasi della sfida sulle funzioniAsserzione non-nullRiepilogo - Accesso sicuro6Prendere decisioni
Istruzione ifIf-elseIf come espressioneEspressione whenwhen con intervalliRiepilogo - Calcolatrice semplice9Cicli
Ciclo forCiclo whileCiclo do-whilebreakcontinueIntervalli nei cicliCiclo annidatoRipasso - fattorialeRipasso - input dinamicoEsercitati da solo: Playground Kotlin