È ancora più facile in Swift:
let string : String = "Hello 🐶🐮 🇩🇪"
let characters = Array(string)
println(characters)
// [H, e, l, l, o, , 🐶, 🐮, , 🇩🇪]
Questo usa i fatti che
- an
Array
può essere creato da a SequenceType
e
String
è conforme al SequenceType
protocollo e il suo generatore di sequenza enumera i caratteri.
E poiché le stringhe Swift hanno il pieno supporto per Unicode, questo funziona anche con caratteri esterni al "Piano multilingue di base" (come 🐶) e con cluster grapheme estesi (come 🇩🇪, che in realtà è composto da due scalari Unicode).
Aggiornamento: a partire da Swift 2, String
non è più conforme
SequenceType
, ma la characters
proprietà fornisce una sequenza di caratteri Unicode:
let string = "Hello 🐶🐮 🇩🇪"
let characters = Array(string.characters)
print(characters)
Funziona anche in Swift 3 .
Aggiornamento: A partire da Swift 4, String
è (di nuovo) una raccolta dei suoi
Character
s:
let string = "Hello 🐶🐮 🇩🇪"
let characters = Array(string)
print(characters)
// ["H", "e", "l", "l", "o", " ", "🐶", "🐮", " ", "🇩🇪"]
let joined = ", ".join(characters);
) l'array provochi un'String' is not identical to 'Character'
errore?