Swiftで文字列を分割して配列に変換(split/String#componentsSeparatedByString)

スポンサーリンク
スポンサーリンク
【お知らせ】 英単語を画像イメージで楽に暗記できる辞書サイトを作りました。英語学習中の方は、ぜひご利用ください!
画像付き英語辞書 Imagict | 英単語をイメージで暗記
【開発記録】
英単語を画像イメージで暗記できる英語辞書サービスを作って公開しました

Swift で文字列を任意の文字・文字列で分割して、結果として配列を得る方法です。split および String#componentsSeparatedByString メソッドを使う方法を試しました。テスト実行は Xcode の playground を利用しました。

— 環境 —
Swift 1.2
Xcode 6.3.2

スポンサーリンク

split で分割

まず最初に split で文字列を分割してみます。

分割はできましたが、スペースが勝手に削除されてしまっています!本来なら、[“hoge”, ” fuga”, ” foo”, ” bar”, ” baz”] と fuga, foo, bar, baz の頭には半角スペースが入って欲しいところです。

次に isSeparator の $0 に “, ” と “コンマ+半角スペース” を渡してみたところ…

「Cannot invoke ‘split’ with an argument list of type」というコンパイルエラーが発生してしまいました。色々試したところ、split での isSeparator の $0 比較には特定の文字(1文字)のみ渡すことができ、文字列(複数の文字)は渡せないっぽい。

String#componentsSeparatedByString() で任意の文字列で分割

ということで、文字列を任意の文字列(複数の文字)で分割するためには、String#componentsSeparatedByString() メソッドを利用します。

String#componentsSeparatedByString() で分割。

“, “(コンマ+半角スペース)の文字列で分割することができました。

分割後に、ちゃんとスペースが残るかも検証。

今度は期待通りの結果が得られました。split いまいちっぽいので、Swift で文字列を分割する際には、今後は String#componentsSeparatedByString() をメインに使っていこうと思います。

スポンサーリンク
スポンサーリンク
 
Twitterを使っていますのでフォローお願いたします!ブログの更新情報もつぶやいてます^^
(英語学習用)

Leave Your Message!