componentsSeparatedByString の Swift バージョン 質問する

componentsSeparatedByString の Swift バージョン 質問する

これは初心者の質問だとわかっています。質問する前に本当にいろいろ調べました。しかし、私が知りたいことの正確な答えはありません。Objective C を使用せずに文字列を配列に分割するにはどうすればよいでしょうか? たとえば、次のようになります。

var str = "Today is so hot"
var arr = str.componentsSeparatedByString(" ")  // *
  • 動作しないことはわかっていますが、そのようなものを探しています。文字列を「 」(または別の文字/文字列)で分割したいです

アイデア: 文字列クラスの拡張を作成するのは、私にとっては非常に良いことかもしれません。しかし、それをどのように行うのかはわかりません。

編集: import Foundation を忘れていました。import foundation をインポートすれば動作します。しかし、String クラスを拡張する方法はありますか? ありがとうございます

ベストアンサー1

文字列を指定した長さで分割したい場合キャラクターsplit()Foundation を必要とせずに組み込みメソッドを使用できます。

let str = "Today is so hot"
let arr = split(str, { $0 == " "}, maxSplit: Int.max, allowEmptySlices: false)
println(arr) // [Today, is, so, hot]

Swift 1.2 のアップデート:Swift 1.2(Xcode 6.3)ではパラメータの順序が変更されました。split は "isSeparator" が見つからないとエラーを出すようになりました:

let str = "Today is so hot"
let arr = split(str, maxSplit: Int.max, allowEmptySlices: false, isSeparator: { $0 == " "} )
println(arr) // [Today, is, so, hot]

Swift 2 のアップデート:見るスチュアートの答え

Swift 3 のアップデート:

let str = "Today is so hot"
let arr = str.characters.split(separator: " ").map(String.init)
print(arr)

おすすめ記事