Menu
Coddy logo textTech

Búsqueda en Strings

Parte de la sección Lógica y Flujo del Journey de Swift de Coddy — lección 3 de 56.

Tres comprobaciones rápidas para saber si una subcadena se encuentra dentro de otra:

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

contains toma cualquier subcadena, mientras que hasPrefix y hasSuffix solo miran al principio o al final. Todos ellos son sensibles a mayúsculas y minúsculas, así que convierte la cadena a minúsculas primero si eso importa.

Combina estos con ! para una prueba rápida de "ausencia":

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

Desafío

Fácil

Lee una sola línea de entrada. Valídala como un email simple comprobando todo lo siguiente:

  • Contiene exactamente un @ (usa filter + count en los caracteres)
  • No comienza ni termina con @
  • Termina con .tech, .com, o .org (insensible a mayúsculas)

Imprime valid cuando todas las comprobaciones pasen, de lo contrario imprime invalid. Compara contra la versión en minúsculas de la entrada.

Para la entrada alice@CODDY.TECH, la salida es valid.

Hoja de referencia

Comprueba si una cadena contiene una subcadena, o si comienza/termina con una:

let email = "alice@coddy.tech"
email.contains("@")        // true – en cualquier lugar de la cadena
email.hasPrefix("alice")   // true – al principio
email.hasSuffix(".tech")   // true – al final

Los tres distinguen entre mayúsculas y minúsculas. Usa .lowercased() primero si es necesario:

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

Usa ! para comprobar la ausencia:

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

Pruébalo tú mismo

let line = readLine()!

// TODO: validar exactamente un '@', no en los extremos, sufijo en [.tech .com .org]
quiz iconPonte a prueba

Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.

Todas las lecciones de Lógica y Flujo