Iterar sobre cadenas P1
Parte de la sección Fundamentos del Journey de Swift de Coddy — lección 71 de 86.
Al igual que los arreglos, las cadenas en Swift son secuencias de caracteres sobre las que puedes iterar. Esto facilita el procesamiento de texto carácter por carácter utilizando el conocido bucle for-in.
Cuando recorres una cadena, Swift te da cada carácter en orden:
let word = "Hello"
for char in word {
print(char)
}
// H
// e
// l
// l
// oCada char en el bucle es de tipo Character, no String. Esta distinción es importante cuando necesitas comparar o manipular caracteres individuales.
Puedes usar esta técnica para analizar texto, como contar caracteres específicos:
let message = "banana"
var countA = 0
for char in message {
if char == "a" {
countA += 1
}
}
print(countA) // 3Ten en cuenta que al comparar un carácter, usamos un solo carácter entre comillas como "a". Swift trata esto automáticamente como un Character al compararlo con otro carácter.
Desafío
FácilEscribe una función countVowels que reciba text y devuelva el recuento total de vocales en la cadena.
Itera a través de cada carácter en la cadena y cuenta cuántos son vocales (a, e, i, o, u). Cuenta tanto las vocales minúsculas como las mayúsculas.
Parámetros:
text(String): La cadena a analizar
Devuelve: El número total de vocales encontradas en la cadena (Int)
Ejemplo: Si text es "Hello World", la función debería devolver 3 (las vocales son e, o, o).
Hoja de referencia
Puedes iterar sobre una cadena usando un bucle for-in para procesar cada carácter:
let word = "Hello"
for char in word {
print(char)
}
// H
// e
// l
// l
// oCada char en el bucle es de tipo Character, no String.
Puedes comparar caracteres directamente en condiciones:
let message = "banana"
var countA = 0
for char in message {
if char == "a" {
countA += 1
}
}
print(countA) // 3Pruébalo tú mismo
func countVowels(text: String) -> Int {
// 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