当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Swift EmptyCollection.Iterator 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大神的英文原创作品 EmptyCollection.Iterator split(maxSplits:omittingEmptySubsequences:whereSeparator:)。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。