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
Array
peut être créé à partir d'un SequenceType
, et
String
est conforme au SequenceType
protocole 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 characters
proprié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
Character
s:
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?