É 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
Array
pode ser criado a partir de SequenceType
e
String
está em conformidade com o SequenceType
protocolo 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 characters
propriedade 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
Character
s:
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?