文書   >   Swift   >   Swift 標準ライブラリ   >   Collections   >   Range   >   split(separator:maxSplits:omittingEmptySubsequences:)
インスタンスメソッド
split(separator:maxSplits:
omittingEmptySubsequences:)
与えられた要素と等しい要素の周りで、コレクションの可能な最長の部分シーケンスを順番に返します。
宣言
func split(separator: Bound, maxSplits: Int = default, omittingEmptySubsequences: Bool = default) -> [Range<Bound>]
Element が Equatable に準拠する場合利用可能です。
パラメータ
separator | 分割すべき要素。 |
maxSplits | コレクションを分割すべき最大の回数、または返すべき部分シーケンスの数より 1 つ少ない数。maxSplits + 1 個の部分シーケンスが返された場合、最後のものは、残りの要素を含む元のコレクションの接尾辞 (suffix) です。 maxSplits はゼロ以上でなければなりません。デフォルト値は Int.max です。 |
omittingEmptySubsequences | false の場合、コレクション内の separator の要素の連続する各ペアと、コレクションの最初または最後のseparator の各インスタンスごとに、結果に空の部分シーケンスが返されます。true の場合、空でない部分シーケンスのみが返されます。デフォルト値は true です。 |
戻り値
このコレクションの要素から分割された部分シーケンスの配列。
議論
結果の配列は最大 maxSplits + 1 個の部分シーケンスで構成されます。コレクションを分割するために使用される要素は、部分シーケンスのいかなる一部としても返されません。
以下の例は、各空白文字 ("") で文字列を分割するときの maxSplits および omittingEmptySubsequences パラメータの効果を示しています。split の最初の使用は、もともと 1 つ以上の空白で区切られた各単語を返します。
let line = "BLANCHE: I don't want realism. I want magic!"
print(line.split(separator: " "))
// Prints "["BLANCHE:", "I", "don\'t", "want", "realism.", "I", "want", "magic!"]"
2 番目の例では、maxSplits パラメータに 1 が渡されるため、元の文字列は 一度だけ分割され、2 つの新しい文字列になります。
print(line.split(separator: " ", maxSplits: 1))
// Prints "["BLANCHE:", " I don\'t want realism. I want magic!"]"
最後の例では、omittingEmptySubsequences パラメータに false が渡されるため、返される配列は、空白文字列が繰り返されていた所に空の文字列が含まれています。
print(line.split(separator: " ", omittingEmptySubsequences: false))
// Prints "["BLANCHE:", "", "", "I", "don\'t", "want", "realism.", "I", "want", "magic!"]"
複雑さ:O(n)、ここで n はコレクションの長さです。
以下も見よ
要素の分割と結合
与えられた predicate (述語) を満たす要素を含んでいないコレクションの、可能な最長の部分シーケンスを返します。
Bound が Strideable に準拠し、Bound.Stride が SignedInteger に準拠する場合に使用可能です。
func joined() -> FlattenSequence<Range<Bound>>
連結されたこの一連のシーケンスの要素を返します。
Element が Sequence に準拠する場合利用可能です。
func joined() -> FlattenCollection<Range<Bound>>
連結されたこの一連のコレクションの要素を返します。
Element が Collection に準拠する場合利用可能です。
func joined<Separator>(separator: Separator) -> JoinedSequence<Range<Bound>>
各要素の間に与えられた区切り記号を挿入して、この一連のシーケンスの連結した要素を返します。
Element が Sequence に準拠する場合利用可能です。
func joined(separator: String) -> String
シーケンスの要素を連結し、各要素間に与えられた区切り記号を追加して新しい文字列を返します。
Element が String の場合利用可能です。
func joined(separator: String) -> String
シーケンスの要素を連結し、各要素間に与えられた区切り記号を追加して新しい文字列を返します。
Element が StringProtocol に準拠する時利用可能です。