Es aún más fácil en Swift:
let string : String = "Hello 🐶🐮 🇩🇪"
let characters = Array(string)
println(characters)
// [H, e, l, l, o, , 🐶, 🐮, , 🇩🇪]
Esto usa los hechos que
- una
Arraypuede ser creado a partir de una SequenceType, y
Stringse ajusta al SequenceTypeprotocolo y su generador de secuencia enumera los caracteres.
Y dado que las cadenas Swift tienen soporte completo para Unicode, esto funciona incluso con caracteres fuera del "Plano multilingüe básico" (como 🐶) y con grupos de grafemas extendidos (como 🇩🇪, que en realidad está compuesto por dos escalares Unicode).
Actualización: a partir de Swift 2, String ya no se ajusta
SequenceType, pero la characterspropiedad proporciona una secuencia de los caracteres Unicode:
let string = "Hello 🐶🐮 🇩🇪"
let characters = Array(string.characters)
print(characters)
Esto también funciona en Swift 3 .
Actualización: a partir de Swift 4, String es (de nuevo) una colección de sus
Characters:
let string = "Hello 🐶🐮 🇩🇪"
let characters = Array(string)
print(characters)
// ["H", "e", "l", "l", "o", " ", "🐶", "🐮", " ", "🇩🇪"]
let joined = ", ".join(characters);) la matriz da como resultado un'String' is not identical to 'Character'error?