文書   >   Swift 標準ライブラリ   >   Collections   >   Supporting Types   >   AnyIterator   >   split(maxSplits:omittingEmptySubsequences:whereSeparator:)
インスタンスメソッド
split(maxSplits:omittingEmptySubsequences:
whereSeparator:)
指定された predicate (述語) を満たす要素を含んでいないシーケンスの可能な最長の部分シーケンスを順番に返します。シーケンスを分割するために使用された要素は、いかなる部分シーケンスの一部としても返されません。
宣言
func split(maxSplits: Int = default, omittingEmptySubsequences: Bool = default, whereSeparator isSeparator: (Element) throws -> Bool) rethrows -> [AnySequence<Element>]
パラメータ
maxSplits | シーケンスを分割する最大回数、または返すべき部分シーケンスの数より 1 つ少ない数。 maxSplits + 1 の部分シーケンスが返された場合、最後のシーケンスは、残りの要素を含む元のシーケンスの接尾辞です。maxSplits はゼロ以上でなければなりません。デフォルト値は Int.max です。 |
omittingEmptySubsequences | false の場合、isSeparator predicate (述語) を満たす連続した要素の各ペアの結果と、isSeparator predicate を満たすシーケンスの開始または終了の各要素の結果のペアに、空のサブシーケンスが戻されます。true の場合、空でない部分シーケンスのみが返されます。デフォルト値は true です。 |
isSeparator | その引数をシーケンスの分割に使用する必要がある場合は true を返すクロージャ。それ以外の場合は false です。 |
戻り値
このシーケンスの要素から分割された、部分シーケンスの配列。
議論
以下の例は、空白に一致するクロージャを使用して文字列を分割するときの maxSplits および omittingEmptySubsequences パラメータの効果を示しています。split の最初の使用は、元は 1 つ以上の空白で区切られた各単語を返します。
let line = "BLANCHE: I don't want realism. I want magic!"
print(line.split(whereSeparator: { $0 == " " })
.map(String.init))
// Prints "["BLANCHE:", "I", "don\'t", "want", "realism.", "I", "want", "magic!"]"
2 番目の例は、maxSplits パラメータに 1 を渡すため、元の文字列は 1 回だけ分割され 2 つの新しい文字列になります。
print(
line.split(maxSplits: 1, whereSeparator: { $0 == " " })
.map(String.init))
// Prints "["BLANCHE:", " I don\'t want realism. I want magic!"]"
最後の例は allowEmptySlices パラメーターに true を渡します。したがって、返された配列には空白が繰り返された空の文字列が含まれます。
print(
line.split(
omittingEmptySubsequences: false,
whereSeparator: { $0 == " " }
).map(String.init))
// Prints "["BLANCHE:", "", "", "I", "don\'t", "want", "realism.", "I", "want", "magic!"]"