Menu
Coddy logo textTech

Reemplazo de subcadenas

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

replacingOccurrences(of:with:) devuelve una nueva cadena con cada coincidencia de una subcadena reemplazada por otra:

let phone = "555-123-4567"
let digits = phone.replacingOccurrences(of: "-", with: "")
print(digits)              // "5551234567"

Al igual que los métodos de capitalización, devuelve un nuevo String; el original permanece intacto. Encadena llamadas cuando necesites eliminar varios patrones:

let messy = "  555-123 4567  "
let clean = messy
    .replacingOccurrences(of: "-", with: "")
    .replacingOccurrences(of: " ", with: "")
print(clean)               // "5551234567"

Dos reemplazos significan dos pasadas sobre la cadena. Para código sensible al rendimiento en cadenas enormes, prefiera una sola pasada de filter sobre los caracteres; para el trabajo diario, los reemplazos encadenados están bien y se leen con claridad.

challenge icon

Desafío

Principiante

Lee una sola línea de entrada. Trátala como una oración y genera un slug adecuado para una URL de la siguiente manera:

  1. Convirtiendo la entrada a minúsculas
  2. Reemplazando cada espacio con un -
  3. Eliminando cada carácter !, ? y .

Imprime el slug resultante.

Para la entrada Hello World!, la salida es hello-world. Para Is Swift Fun?, la salida es is-swift-fun.

Hoja de referencia

replacingOccurrences(of:with:) devuelve una nueva cadena con cada coincidencia reemplazada:

let digits = "555-123-4567".replacingOccurrences(of: "-", with: "")
// "5551234567"

Encadena llamadas para manejar múltiples patrones:

let clean = "555-123 4567"
    .replacingOccurrences(of: "-", with: "")
    .replacingOccurrences(of: " ", with: "")

Pruébalo tú mismo

let line = readLine()!

// TODO: convertir a minúsculas, cambiar espacios por guiones, eliminar los caracteres ! ? .
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