In Swift ist es noch einfacher:
let string : String = "Hello 🐶🐮 🇩🇪"
let characters = Array(string)
println(characters)
// [H, e, l, l, o, , 🐶, 🐮, , 🇩🇪]
Dies nutzt die Fakten, die
- ein
Array
kann aus einem erstellt werdenSequenceType
und erstellt werden
String
entspricht dem SequenceType
Protokoll und sein Sequenzgenerator zählt die Zeichen auf.
Und da Swift-Strings Unicode vollständig unterstützen, funktioniert dies auch mit Zeichen außerhalb der "Basic Multilingual Plane" (wie z. B. 🐶) und mit erweiterten Graphemclustern (wie z. B. 🇩🇪, die tatsächlich aus zwei Unicode-Skalaren bestehen).
Update: Ab Swift 2 String
nicht mehr konform
SequenceType
, aber die characters
Eigenschaft bietet eine Folge der Unicode-Zeichen:
let string = "Hello 🐶🐮 🇩🇪"
let characters = Array(string.characters)
print(characters)
Dies funktioniert auch in Swift 3 .
Update: Ab Swift 4 String
ist (wieder) eine Sammlung seiner
Character
s:
let string = "Hello 🐶🐮 🇩🇪"
let characters = Array(string)
print(characters)
// ["H", "e", "l", "l", "o", " ", "🐶", "🐮", " ", "🇩🇪"]
let joined = ", ".join(characters);
dem Array beizutreten ( ), zu einem führt ?'String' is not identical to 'Character'
Fehler führt?