É ainda mais fácil no Swift:
let string : String = "Hello 🐶🐮 🇩🇪"
let characters = Array(string)
println(characters)
// [H, e, l, l, o, , 🐶, 🐮, , 🇩🇪]
Isso usa os fatos que
- um
Arraypode ser criado a partir de SequenceTypee
Stringestá em conformidade com o SequenceTypeprotocolo e seu gerador de seqüências enumera os caracteres.
E como as strings Swift têm suporte total para Unicode, isso funciona mesmo com caracteres fora do "Plano multilíngue básico" (como 🐶) e com clusters de grafema estendidos (como 🇩🇪, que na verdade é composto por dois escalares Unicode).
Atualização: A partir do Swift 2, String não está mais em conformidade
SequenceType, mas a characterspropriedade fornece uma sequência dos caracteres Unicode:
let string = "Hello 🐶🐮 🇩🇪"
let characters = Array(string.characters)
print(characters)
Isso funciona no Swift 3 também.
Atualização: A partir do Swift 4, String é (novamente) uma coleção de seus
Characters:
let string = "Hello 🐶🐮 🇩🇪"
let characters = Array(string)
print(characters)
// ["H", "e", "l", "l", "o", " ", "🐶", "🐮", " ", "🇩🇪"]
let joined = ", ".join(characters);) a matriz resulta em um'String' is not identical to 'Character'erro?