1. ホーム
  2. ios

[解決済み] Swiftの文字列を配列に変換する

2022-04-20 17:30:46

質問

文字列を変換する方法 "Hello" を配列に変換する ["H","e","l","l","o"] をSwiftで?

Objective-Cでは、これを使ったことがあります。

NSMutableArray *characters = [[NSMutableArray alloc] initWithCapacity:[myString length]];
for (int i=0; i < [myString length]; i++) {
    NSString *ichar  = [NSString stringWithFormat:@"%c", [myString characterAtIndex:i]];
    [characters addObject:ichar];
}

どのように解決するのですか?

Swiftではさらに簡単です。

let string : String = "Hello ???????? ????????"
let characters = Array(string)
println(characters)
// [H, e, l, l, o,  , ????, ????,  , ????????]

という事実を利用しています。

  • アン Array から作成することができます。 SequenceType そして
  • String に準拠しています。 SequenceType プロトコル、およびそのシーケンスジェネレータ は、文字を列挙する。

また、Swiftの文字列はUnicodeをフルサポートしているので、これは 基本多言語面以外のもの(例えば、? のクラスタ(例えば、? 2 ユニコード・スカラー)。


更新:Swift 2の時点。 String に準拠しなくなりました。 SequenceType を指定する必要がありますが characters プロパティは ユニコード文字

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", " ", "????", "????", " ", "????????"]