如何在CFString中获取分隔行?

时间:2018-07-19 11:25:17

标签: swift string cfstring

我想要一种在巨大的string中分隔行的好方法。我搜索并找到了这篇文章: https://medium.com/@sorenlind/three-ways-to-enumerate-the-words-in-a-string-using-swift-7da5504f0062

根据本文,我要使用CFStringTokenizer。因此,我将kCFStringTokenizerUnitWord更改为kCFStringTokenizerUnitLineBreak,最后使用了以下代码:

func tokenize(_ str:String) -> [String] {
    var inputRange = CFRangeMake(0, str.count)
    var flag = UInt(kCFStringTokenizerUnitLineBreak)
    var locale = CFLocaleCopyCurrent()
    var tokenizer = CFStringTokenizerCreate(kCFAllocatorDefault, str as CFString, inputRange, flag, locale)
    var tokenType = CFStringTokenizerAdvanceToNextToken(tokenizer)


    while tokenType != []
    {
        var currentTokenRange = CFStringTokenizerGetCurrentTokenRange(tokenizer)
        var substring = substringWithRange(str, aRange: currentTokenRange)
        tokens.append(substring)
        tokenType = CFStringTokenizerAdvanceToNextToken(tokenizer)
    }

    return tokens
}

但是它返回了我分开的单词而不是分开的行。问题是什么?或者,如果您有其他建议(效果不错),可以提出建议。谢谢。

0 个答案:

没有答案