C'est encore plus simple dans Swift:
let string : String = "Hello 🐶🐮 🇩🇪"
let characters = Array(string)
println(characters)
// [H, e, l, l, o, , 🐶, 🐮, , 🇩🇪]
Cela utilise les faits qui
- un
Arraypeut être créé à partir d'un SequenceType, et
Stringest conforme au SequenceTypeprotocole et son générateur de séquence énumère les caractères.
Et comme les chaînes Swift ont un support complet pour Unicode, cela fonctionne même avec des caractères en dehors du "Plan multilingue de base" (comme 🐶) et avec des clusters de graphèmes étendus (tels que 🇩🇪, qui est en fait composé de deux scalaires Unicode).
Mise à jour: à partir de Swift 2, String n'est plus conforme à
SequenceType, mais la characterspropriété fournit une séquence de caractères Unicode:
let string = "Hello 🐶🐮 🇩🇪"
let characters = Array(string.characters)
print(characters)
Cela fonctionne également dans Swift 3 .
Mise à jour: Depuis Swift 4, String est (encore) une collection de ses
Characters:
let string = "Hello 🐶🐮 🇩🇪"
let characters = Array(string)
print(characters)
// ["H", "e", "l", "l", "o", " ", "🐶", "🐮", " ", "🇩🇪"]
let joined = ", ".join(characters);) le tableau entraîne une'String' is not identical to 'Character'erreur?