Swiftではさらに簡単です。
let string : String = "Hello 🐶🐮 🇩🇪"
let characters = Array(string)
println(characters)
// [H, e, l, l, o, , 🐶, 🐮, , 🇩🇪]
これは、
Array
Aから作成することができSequenceType
、かつ
String
SequenceType
プロトコルに準拠し、そのシーケンスジェネレータは文字を列挙します。
また、Swift文字列はUnicodeを完全にサポートしているので、これは「基本多言語面」の外の文字(🐶など)や拡張書記素クラスター(実際には2つの Unicodeスカラーで構成される🇩🇪など)でも機能します。
更新:Swift 2以降、 String
はに準拠しなくなりました
SequenceType
が、このcharacters
プロパティはUnicode文字のシーケンスを提供します。
let string = "Hello 🐶🐮 🇩🇪"
let characters = Array(string.characters)
print(characters)
これはSwift 3でも機能します。
更新:Swift 4以降 String
(再び)Character
sのコレクションです
:
let string = "Hello 🐶🐮 🇩🇪"
let characters = Array(string)
print(characters)
// ["H", "e", "l", "l", "o", " ", "🐶", "🐮", " ", "🇩🇪"]
let joined = ", ".join(characters);
配列を結合()しようとすると'String' is not identical to 'Character'
エラーが発生する理由はありますか?