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
Array
puede ser creado a partir de una SequenceType
, y
String
se ajusta al SequenceType
protocolo 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 characters
propiedad 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
Character
s:
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?