Menu
Coddy logo textTech

O Método Contains

Parte da seção Fundamentos do Journey de Swift da Coddy — lição 76 de 86.

Ao trabalhar com arrays, você frequentemente precisa verificar se um valor específico existe antes de realizar uma ação. O Swift fornece o método contains() para exatamente este propósito — ele retorna true se o elemento for encontrado, e false caso contrário.

let fruits = ["apple", "banana", "orange"]

if fruits.contains("banana") {
    print("We have bananas!")
}
// Temos bananas!

Isso é muito mais limpo do que escrever um loop para pesquisar no array manualmente. O método funciona com qualquer tipo de array, quer ele contenha strings, números ou outros valores:

let numbers = [10, 20, 30, 40, 50]

print(numbers.contains(30))  // true
print(numbers.contains(99))  // false

Um caso de uso comum é validar a entrada do usuário em relação a uma lista de valores permitidos:

let validOptions = ["yes", "no", "maybe"]
let userInput = "yes"

if validOptions.contains(userInput) {
    print("Valid choice")
} else {
    print("Invalid choice")
}
// Escolha válida

O método contains() também funciona com strings para verificar se uma substring existe dentro de uma string maior:

let message = "Hello, Swift!"
print(message.contains("Swift"))  // true
challenge icon

Desafio

Fácil

Você receberá duas linhas de entrada:

  1. Uma lista de nomes de usuário permitidos separada por vírgulas (ex: admin,user,guest,moderator)
  2. Um nome de usuário para verificar

Verifique se o nome de usuário existe na lista permitida. Se existir, imprima Access granted. Caso contrário, imprima Access denied.

Passos:

  1. Leia a lista separada por vírgulas e divida-a em um array de strings
  2. Leia o nome de usuário para verificar
  3. Use o método contains() para determinar se o nome de usuário está na lista permitida
  4. Imprima a mensagem apropriada com base no resultado

Dica: Use components(separatedBy:) para dividir uma string em um array. Por exemplo:

let text = "a,b,c"
let parts = text.components(separatedBy: ",")

Folha de consulta

O método contains() verifica se um valor específico existe em um array, retornando true se encontrado e false caso contrário:

let fruits = ["apple", "banana", "orange"]

if fruits.contains("banana") {
    print("We have bananas!")
}
// Temos bananas!

Ele funciona com qualquer tipo de array:

let numbers = [10, 20, 30, 40, 50]

print(numbers.contains(30))  // true
print(numbers.contains(99))  // false

Caso de uso comum para validar entrada:

let validOptions = ["yes", "no", "maybe"]
let userInput = "yes"

if validOptions.contains(userInput) {
    print("Valid choice")
} else {
    print("Invalid choice")
}
// Escolha válida

O método contains() também funciona com strings para verificar substrings:

let message = "Hello, Swift!"
print(message.contains("Swift"))  // true

Para dividir uma string em um array, use components(separatedBy:):

let text = "a,b,c"
let parts = text.components(separatedBy: ",")

Experimente você mesmo

// Leia a lista de nomes de usuário permitidos separada por vírgulas
let allowedList = readLine()!

// Leia o nome de usuário para verificar
let username = readLine()!

// TODO: Escreva seu código abaixo
// 1. Divida a allowedList em um array usando components(separatedBy:)
// 2. Use contains() para verificar se o username está no array
// 3. Imprima "Access granted" ou "Access denied" com base no resultado
quiz iconTeste seus conhecimentos

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