Menu
Coddy logo textTech

Busca em Strings

Parte da seção Lógica e Fluxo do Journey de Swift da Coddy — lição 3 de 56.

Três verificações rápidas para saber se uma substring está contida em outra:

let email = "alice@coddy.tech"
print(email.contains("@"))         // true
print(email.hasPrefix("alice"))    // true
print(email.hasSuffix(".tech"))    // true

contains aceita qualquer substring, enquanto hasPrefix e hasSuffix olham apenas para o início ou o fim. Todos eles são sensíveis a maiúsculas e minúsculas, então transforme a string em minúsculas primeiro se isso for importante.

Combine estes com ! para um teste rápido de "está faltando":

if !email.contains("@") {
    print("not a valid email")
}
challenge icon

Desafio

Fácil

Leia uma única linha de entrada. Valide-a como um e-mail simples verificando todos estes itens:

  • Ela contém exatamente um @ (use filter + count nos caracteres)
  • Ela não começa nem termina com @
  • Ela termina com .tech, .com ou .org (insensível a maiúsculas e minúsculas)

Imprima valid quando todas as verificações passarem, caso contrário invalid. Compare com a versão em letras minúsculas da entrada.

Para a entrada alice@CODDY.TECH, a saída é valid.

Folha de consulta

Verifique se uma string contém uma substring, ou se começa/termina com uma:

let email = "alice@coddy.tech"
email.contains("@")        // true – em qualquer lugar da string
email.hasPrefix("alice")   // true – no início
email.hasSuffix(".tech")   // true – no final

Todos os três são case-sensitive. Use .lowercased() primeiro, se necessário:

email.lowercased().hasSuffix(".tech")

Use ! para testar a ausência:

if !email.contains("@") { print("not a valid email") }

Experimente você mesmo

let line = readLine()!

// TODO: validar exatamente um '@', não nas extremidades, sufixo em [.tech .com .org]
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 Lógica e Fluxo