Iterar sobre cadenas P2
Parte de la sección Fundamentos del Journey de Swift de Coddy — lección 72 de 86.
Al igual que usamos enumerated() con arreglos para obtener tanto el índice como el elemento, podemos hacer lo mismo con las cadenas. Esto es útil cuando necesitas saber la posición de cada carácter mientras iteras.
let word = "Swift"
for (index, char) in word.enumerated() {
print("\(index): \(char)")
}
// 0: S
// 1: w
// 2: i
// 3: f
// 4: tEsta técnica es útil al construir nuevas cadenas basadas en las posiciones de los caracteres. Por ejemplo, es posible que desees conservar solo los caracteres en los índices pares:
let text = "abcdef"
var result = ""
for (index, char) in text.enumerated() {
if index % 2 == 0 {
result += String(char)
}
}
print(result) // aceObserva que convertimos char en un String usando String(char) antes de añadirlo. Esto es necesario porque result es un String, y no puedes añadir directamente un Character al mismo usando el operador +=.
Desafío
FácilEscribe una función extractOddIndexChars que recibe text y devuelve una nueva cadena que contiene solo los caracteres en los índices impares.
Usa enumerated() para iterar a través de la cadena y construir un resultado que contenga los caracteres donde el índice es impar (1, 3, 5, etc.).
Parámetros:
text(String): La cadena de entrada a procesar
Devuelve: Una cadena que contiene solo los caracteres en los índices impares (String)
Ejemplo: Si text es "abcdefg", la función debería devolver "bdf" (caracteres en los índices 1, 3 y 5).
Hoja de referencia
Usa enumerated() con cadenas para obtener tanto el índice como el carácter mientras iteras:
let word = "Swift"
for (index, char) in word.enumerated() {
print("\(index): \(char)")
}
// 0: S
// 1: w
// 2: i
// 3: f
// 4: tAl construir cadenas basadas en posiciones de caracteres, convierte Character a String antes de concatenar:
let text = "abcdef"
var result = ""
for (index, char) in text.enumerated() {
if index % 2 == 0 {
result += String(char)
}
}
print(result) // aceUsa String(char) para convertir un Character en un String al concatenar con +=.
Pruébalo tú mismo
func extractOddIndexChars(text: String) -> String {
// Escribe el código aquí
}
Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.
Todas las lecciones de Fundamentos
4Operadores Parte 1
Operadores aritméticosOperador de móduloAsignación compuestaResumen - Matemáticas simplesOperadores de comparación7E/S Básica
Función PrintInterpolación de StringsEntrada ReadLineConversión de TiposRepaso - Hasta 120Repaso - Verdadero o Falso10Funciones
Declarar una funciónParámetros y argumentosValores de retornoEtiquetas de argumentosResumen - Función SigmaResumen - Función de validaciónValores por defecto13Iterar sobre secuencias
Iterar sobre elementosEl método enumerateIterar sobre cadenas P1Iterar sobre cadenas P22Variables
Let vs VarAnotaciones de tiposNúmerosStringsBooleanosConvenciones de nomenclaturaResumen - Inicializar variables5Operadores Parte 2
Operadores lógicos Parte 1Operadores lógicos Parte 2Repaso - Lógica simpleOperadores lógicos Parte 3Operador ternario8Calculadora para dividir la cuenta
Mensaje de bienvenidaObtener la entrada de datos11FizzBuzz con un giro
Descripción general del juegoLa función FizzBuzz3Opcionales
Qué son los opcionalesDesempaquetado con If LetGuard LetOperador de coalescencia nulaResumen - Desempaquetado seguro6Toma de decisiones
Sentencia IfIf - ElseRepaso - Calculadora simpleSentencia SwitchSwitch con rangos9Bucles
Bucle For-InBucle WhileBucle Repeat-WhileBreakContinueRepaso - FactorialRangos en buclesBucle anidadoRepaso - Entrada dinámica