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.
Desafío
PrincipianteLee una sola línea de entrada. Trátala como una oración y genera un slug adecuado para una URL de la siguiente manera:
- Convirtiendo la entrada a minúsculas
- Reemplazando cada espacio con un
- - 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 ! ? .
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
1Strings a fondo
Conteo e índicesMayúsculas, minúsculas y TrimBúsqueda en StringsDividir y unirReemplazo de subcadenasResumen: Validación de usuario4Conjuntos
Crear conjuntosUnión e intersecciónResta y diferencia simétricaSubconjunto y superconjuntoResumen - Filtro de etiquetas7Proyecto - Seguimiento de hábitos
Descripción general del proyectoMarcar como completado10Proyecto - Motor de cuestionarios
Descripción general del proyectoHacer preguntas2Rangos e Intervalos
Cerrados vs. SemiabiertosSaltos (Stride)Métodos de RangosRangos en SwitchResumen - Cuadrícula de calendario5Funciones de orden superior Pt. 1
MapFilterReduceEncadenar map, filter, reduceResumen - Estadísticas de palabras