我想要一种在巨大的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
}
但是它返回了我分开的单词而不是分开的行。问题是什么?或者,如果您有其他建议(效果不错),可以提出建议。谢谢。