Conteo e índices
Parte de la sección Lógica y Flujo del Journey de Swift de Coddy — lección 1 de 56.
Has usado str.count en los fundamentos para obtener el número de caracteres. Ir más allá significa entender que un String de Swift es una secuencia de Caracteres, no un array plano de bytes.
let greeting = "Hello"
print(greeting.count) // 5
print(greeting.first!) // "H"
print(greeting.last!) // "o"
print(greeting.isEmpty) // falseNo puedes indexar una cadena con un entero. Para obtener un carácter en una posición específica, solicita a la cadena un index desplazado desde su inicio:
let i = greeting.index(greeting.startIndex, offsetBy: 1)
print(greeting[i]) // "e"Las propiedades first, last e isEmpty son las herramientas cotidianas. Recurre a los índices solo cuando realmente necesites una posición específica.
Desafío
PrincipianteLee una sola línea de entrada. Imprime tres líneas:
- El número de caracteres en la entrada
- El primer y el último carácter separados por un espacio, por ejemplo,
H oparaHello truecuando el primer y el último carácter son la misma letra ignorando mayúsculas y minúsculas, de lo contrariofalse(por ejemplo,Anna,RadaR)
Asume que la entrada tiene al menos un carácter.
Para la entrada RadaR, la salida es:
5
R R
trueHoja de referencia
Un String de Swift es una secuencia de Characters. Propiedades clave:
let s = "Hello"
s.count // 5
s.first! // "H"
s.last! // "o"
s.isEmpty // falsePara acceder a un carácter en una posición específica, utiliza un desplazamiento de índice:
let i = s.index(s.startIndex, offsetBy: 1)
print(s[i]) // "e"Comparación de caracteres sin distinguir entre mayúsculas y minúsculas:
s.first!.lowercased() == s.last!.lowercased()Pruébalo tú mismo
let line = readLine()!
// TODO: imprimir la cantidad, el primero/último y la verificación de si es la misma letra ignorando mayúsculas y minú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