インスタンスメソッド
split(maxSplits:omittingEmptySubsequences:
whereSeparator:)
与えられた述語を満たす要素を含まない、コレクションの可能な限り最長のサブシーケンスを順番に返します。
System Swift
iOS 14.0+ iPadOS 14.0+ Mac Catalyst 14.0+
macOS 11.0+
tvOS 14.0+ visionOS 1.0+ watchOS 7.0+
func split(
maxSplits:
Int = Int.max,
omittingEmptySubsequences:
Bool = true,
) rethrows -> [Self.SubSequence]
パラメータ
maxSplits
コレクションを分割する最大回数、または返されるべきサブシーケンスの数より 1 少ない数。maxSplits + 1 個のサブシーケンスが返される場合、最後のサブシーケンスは残りの要素を含む元のコレクションの接尾辞になります。maxSplits はゼロ以上でなければなりません。デフォルト値は Int.max です。
omittingEmptySubsequences
false の場合、isSeparator の述語を満たす連続する要素の各ペアと、isSeparator の述語を満たすコレクションの先頭または末尾の各要素に対して、結果に空のサブシーケンスが返されます。デフォルト値は true です。
isSeparator
要素を引数として受け取り、コレクションをその要素で分割するかどうかを示すブール値を返すクロージャ。
戻り値
このコレクションの要素から分割されたサブシーケンスの配列。
議論
結果の配列は、最大で maxSplits + 1 個のサブシーケンスで構成されます。シーケンスを分割するために使用される要素は、どのサブシーケンスの一部としても返されません。
以下の例は、スペースに一致するクロージャを使用して文字列を分割する場合の maxSplits および omittingEmptySubsequences パラメータの効果を示しています。split の最初の使用は、元々 1 つ以上のスペースで区切られていた各単語を返します。
- let line = "BLANCHE:       I don't want realism. I want magic!"
- print(line.split(whereSeparator: { $0 == " " }))
- // Prints "["BLANCHE:", "I", "don\'t", "want", "realism.", "I", "want", "magic!"]"
2 番目の例では、maxSplits パラメータに 1 を渡すため、元の文字列は 1 回だけ分割され、2 つの新しい文字列になります。
- print(line.split(maxSplits: 1, whereSeparator: { $0 == " " }))
- // Prints "["BLANCHE:", " I don\'t want realism. I want magic!"]"
最後の例では、omittingEmptySubsequences パラメータに false を渡すため、返される配列にはスペースが繰り返された空の文字列が含まれます。
- print(line.split(omittingEmptySubsequences: false, whereSeparator: { $0 == " " }))
- // Prints "["BLANCHE:", "", "", "I", "don\'t", "want", "realism.", "I", "want", "magic!"]"
複雑さ:
O(n),ここで n はコレクションの長さ。
トップへ
トップへ
トップへ
トップへ
トップへ
トップへ
トップへ
トップへ
トップへ
トップへ
トップへ
トップへ
トップへ
トップへ
トップへ
トップへ
トップへ