Mayúsculas, minúsculas y Trim
Parte de la sección Lógica y Flujo del Journey de Swift de Coddy — lección 2 de 56.
Los métodos de mayúsculas y minúsculas devuelven nuevas cadenas, no modifican la original. Úsalos en el texto que proviene del usuario antes de compararlo.
let raw = " Hello World "
print(raw.uppercased()) // " HELLO WORLD "
print(raw.lowercased()) // " hello world "Para eliminar los espacios en blanco al principio y al final, utiliza trimmingCharacters(in:) de Foundation (ya importado en esta plataforma):
let cleaned = raw.trimmingCharacters(in: .whitespaces)
print(cleaned) // "Hello World"
print(cleaned.count) // 11.whitespaces cubre espacios y tabulaciones. Utiliza .whitespacesAndNewlines cuando la entrada pueda contener un \n final.
Desafío
PrincipianteLee dos líneas de entrada. Trátalas a ambas como cadenas para comparar sin distinguir entre mayúsculas y minúsculas, ignorando los espacios en blanco circundantes. Imprime:
matchcuando las versiones limpias y en minúsculas sean iguales, de lo contrariodiffer- La versión limpia (sin espacios) de la primera línea en mayúsculas
Para la entrada Hello World en la primera línea y HELLO world en la segunda, la salida es:
match
HELLO WORLDHoja de referencia
Los métodos de mayúsculas y minúsculas de cadenas devuelven nuevas cadenas (la original no cambia):
str.uppercased() // "hello" → "HELLO"
str.lowercased() // "HELLO" → "hello"Elimina los espacios en blanco al principio y al final con trimmingCharacters(in:):
let cleaned = raw.trimmingCharacters(in: .whitespaces) // espacios y tabulaciones
let cleaned = raw.trimmingCharacters(in: .whitespacesAndNewlines) // incluye \nPruébalo tú mismo
let a = readLine()!
let b = readLine()!
// TODO: recortar + minúsculas para comparar; imprimir match/differ luego a recortado y en mayúsculas
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