Swift:
Calculando la longitud de una cadena
How to:
Swift facilita el conteo de caracteres en una cadena. Usamos la propiedad count
del String.
let saludo = "Hola"
let longitud = saludo.count
print("La cadena '\(saludo)' tiene \(longitud) caracteres.")
Salida:
La cadena 'Hola' tiene 4 caracteres.
Si quieres experimentar con más ejemplos, puedes intentar agregar emojis o caracteres especiales, verás que Swift cuenta los caracteres de manera bastante intuitiva.
let cadenaConEmoji = "Programando en Swift 🚀"
print("Caracteres: \(cadenaConEmoji.count)")
Salida:
Caracteres: 23
Deep Dive
Historicamente, el conteo de caracteres no siempre ha sido directo debido a la complejidad de las codificaciones de caracteres y la representación en la memoria. En los primeros días, cada carácter se mapeaba a un byte, lo que simplificaba las cosas. Hoy en día, Unicode y sus variadas longitudes de caracteres, como los emojis, requieren de una lógica más compleja.
Swift usa Unicode para representar Strings, por lo que count
devuelve la cantidad correcta de caracteres visibles, sin importar la complejidad del carácter Unicode. No obstante, hay alternativas como utf8.count
, utf16.count
, y unicodeScalars.count
, que contabilizan las unidades de código UTF-8, UTF-16 y escalares Unicode respectivamente, y son útiles en contextos específicos de manejo de bajo nivel.
Por ejemplo, un mismo carácter puede tener diferentes representaciones en Unicode (como la forma normalizada o no), lo que potencialmente puede llevar a confusiones al contar caracteres si no se está atento a la normalización de la cadena.
let cafe = "café"
let cafeNormalizado = "cafe\u{0301}"
print(cafe.count) // 4
print(cafeNormalizado.count) // 4 aunque la cadena esté normalizada de manera diferente
En cuánto a rendimiento, count
es una operación O(n), donde n es la longitud de la cadena, puesto que Swift necesita iterar a través de todos los caracteres para contarlos.
See Also
Para una inmersión más profunda en el trabajo con cadenas Unicode en Swift, consulta la documentación oficial de Swift sobre Strings y Characters:
- Documentación de Apple sobre Strings y Characters
- Unicode.org’s Standard para comprender cómo se define y maneja Unicode.
- Swift String Manifesto para entender la filosofía detrás del diseño de String en Swift.