當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Swift Sequence split(maxSplits:omittingEmptySubsequences:whereSeparator:)用法及代碼示例


實例方法

split(maxSplits:omittingEmptySubsequences:whereSeparator:)

按順序返回不包含滿足給定謂詞的元素的序列的最長可能子序列。用於拆分序列的元素不會作為任何子序列的一部分返回。

聲明

func split(
    maxSplits: Int = Int.max,
    omittingEmptySubsequences: Bool = true,
    whereSeparator isSeparator: (Self.Element) throws -> Bool
) rethrows -> [ArraySlice<Self.Element>]

返回值

一個子序列數組,從這個序列的元素中分離出來。

參數

maxSplits

拆分序列的最大次數,或者比要返回的子序列數少一。如果返回maxSplits + 1 子序列,則最後一個是包含剩餘元素的原始序列的後綴。 maxSplits 必須大於或等於零。默認值為 Int.max

omittingEmptySubsequences

如果 false ,對於滿足 isSeparator 謂詞的每對連續元素以及滿足 isSeparator 謂詞的序列開頭或結尾的每個元素,結果中都會返回一個空子序列。如果 true ,則僅返回非空子序列。默認值為 true

isSeparator

如果應使用其參數拆分序列,則返回 true 的閉包;否則,false

詳述

以下示例顯示了使用匹配空格的閉包拆分字符串時 maxSplitsomittingEmptySubsequences 參數的效果。 split 的第一次使用返回最初由一個或多個空格分隔的每個單詞。


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!"]"

第二個示例將1 傳遞給maxSplits 參數,因此原始字符串隻被拆分一次,分成兩個新字符串。


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!"]"

可用版本

iOS 8.0+, iPadOS 8.0+, macOS 10.10+, Mac Catalyst 13.0+, tvOS 9.0+, watchOS 2.0+

相關用法


注:本文由純淨天空篩選整理自apple.com大神的英文原創作品 Sequence split(maxSplits:omittingEmptySubsequences:whereSeparator:)。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。