O Método Contains
Parte da seção Fundamentos do Journey de Kotlin da Coddy. Lição 82 de 93.
Uma tarefa comum ao trabalhar com listas é verificar se um elemento específico existe na coleção. O Kotlin fornece o método contains() para essa finalidade, que retorna true se o elemento for encontrado e false caso contrário.
val fruits = listOf("Apple", "Banana", "Orange")
println(fruits.contains("Banana")) // true
println(fruits.contains("Grape")) // falseKotlin também oferece uma alternativa mais legível usando o operador in, que faz exatamente a mesma coisa:
val numbers = listOf(1, 2, 3, 4, 5)
println(3 in numbers) // true
println(10 in numbers) // falseVocê também pode verificar se um elemento não está em uma lista usando !in:
val colors = listOf("Red", "Green", "Blue")
if ("Yellow" !in colors) {
println("Yellow is not available")
}Essas verificações também funcionam com strings, permitindo que você verifique se um caractere ou uma substring existe:
val word = "Kotlin"
println('K' in word) // true
println("otl" in word) // trueO operador in é particularmente útil em instruções condicionais, tornando seu código mais expressivo e fácil de ler do que iterar manualmente por uma lista para encontrar um elemento.
Desafio
MédioVocê receberá uma lista de nomes de usuário permitidos e um nome de usuário para verificar. Determine se o nome de usuário existe na lista de permitidos usando o operador in.
Se o nome de usuário estiver na lista, imprima Access granted. Se o nome de usuário não estiver na lista, imprima Access denied.
Formato de entrada:
- Primeira linha: um inteiro
nrepresentando o número de nomes de usuário permitidos - Próximas
nlinhas: strings representando os nomes de usuário permitidos - Última linha: o nome de usuário a ser verificado
Formato de saída:
Imprima Access granted ou Access denied com base no fato de o nome de usuário existir ou não na lista de permitidos.
Exemplo:
Se a lista de permitidos for ["alice", "bob", "charlie"] e o nome de usuário a ser verificado for bob, a saída deverá ser:
Access grantedSe o nome de usuário a ser verificado for david, a saída deverá ser:
Access deniedExperimente você mesmo
fun main() {
// Leia o número de nomes de usuário permitidos
val n = readLine()!!.toInt()
// Leia os nomes de usuário permitidos em uma lista
val allowedUsernames = mutableListOf<String>()
for (i in 1..n) {
allowedUsernames.add(readLine()!!)
}
// Leia o nome de usuário a verificar
val usernameToCheck = readLine()!!
// TODO: Escreva seu código abaixo
// Use o operador 'in' para verificar se usernameToCheck existe em allowedUsernames
// Print "Access granted" if found, "Access denied" if not
}Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.
Todas as lições de Fundamentos
4Operadores – Parte 1
Operadores aritméticosOperador móduloAtribuição aumentadaOperadores de comparaçãoRecapitulação – Matemática simples7Entrada e Saída Básicas
Função PrintlnTemplates de StringEntrada com ReadLineConversão de TiposRevisão - Anos até a AposentadoriaRevisão - Verdadeiro ou Falso10Funções
Declare uma funçãoParâmetros e argumentosValores de retornoArgumentos nomeadosValores padrãoFunções de expressão únicaRecapitulação — função SigmaRecapitulação — função de validação2Variáveis
Val vs VarInferência de TiposNúmerosStringBooleanoConvenções de NomenclaturaRecapitulação - Inicializar Variáveis5Operadores – Parte 2
Operadores lógicos – Parte 1Operadores lógicos – Parte 2Operadores lógicos – Parte 3Ternário com expressão ifRecapitulação – Lógica simples8Calculadora de Divisão da Conta
Mensagem de Boas-vindasObtendo a Entrada11FizzBuzz com uma Reviravolta
Visão Geral do JogoA Função FizzBuzz14Listas Avançadas
Fatiamento de Listas com SubListFatiamento de Listas com Take DropOperadores de SequênciaO Método ContainsRevisão - Pesquisar uma Página3Nullabilidade
O que é Null SafetyTipos anuláveisOperador de chamada seguraOperador ElvisNoções básicas do desafio de funçõesAsserção de não nuloRecapitulação - Acesso seguro6Tomada de Decisões
Instrução IfIf - ElseIf como ExpressãoExpressão WhenWhen com IntervalosRecapitulação - Calculadora Simples9Laços de Repetição
Laço ForLaço WhileLaço Do-WhileBreakContinueIntervalos em LaçosLaço AninhadoRecapitulação - FatorialRecapitulação - Entrada Dinâmica12Fundamentos de Listas
List vs MutableListAcessando ElementosModificando ListasMétodos de ListaPair e TripleRecapitulação - Lista de ProdutosRecapitulação - Lista Invertida15Rastreador de Despesas Diárias
Visão Geral do ProjetoSair do ProgramaPratique por conta própria: Playground de Kotlin