Swift'de daha da kolay:
let string : String = "Hello 🐶🐮 🇩🇪"
let characters = Array(string)
println(characters)
// [H, e, l, l, o, , 🐶, 🐮, , 🇩🇪]
Bu şu gerçekleri kullanır:
- bir
Array
, a'dan oluşturulabilir SequenceType
ve
String
SequenceType
protokole uygundur ve sıra oluşturucu karakterleri numaralandırır.
Ve Swift dizeleri Unicode için tam destek sağladığından, bu "Temel Çok Dilli Düzlem" dışındaki karakterlerde (🐶 gibi) ve genişletilmiş grafik kümeleriyle (aslında iki Unicode skalasından oluşan 🇩🇪 gibi ) bile çalışır.
Güncelleme: Swift 2'den itibaren String
artık uyumlu değildir
SequenceType
, ancak characters
özellik Unicode karakterlerinin bir dizisini sağlar:
let string = "Hello 🐶🐮 🇩🇪"
let characters = Array(string.characters)
print(characters)
Bu, Swift 3'te de çalışır .
Güncelleme: Swift 4 itibariyle String
, (yine) kendi koleksiyonlarından
Character
:
let string = "Hello 🐶🐮 🇩🇪"
let characters = Array(string)
print(characters)
// ["H", "e", "l", "l", "o", " ", "🐶", "🐮", " ", "🇩🇪"]
let joined = ", ".join(characters);
Diziye ( ) katılmaya çalışmanın neden bir'String' is not identical to 'Character'
hatayla sonuçlandığına dair bir fikriniz var mı?