如何计算Swift中排除新行的字符?

时间:2017-04-27 22:39:36

标签: swift string count

我想计算Swift中的字符数。我正在使用此代码

let charsNumber = str.characters.count

返回字符数并返回。有没有办法可以算出没有回报的角色?

3 个答案:

答案 0 :(得分:6)

您可以使用filter(isIncludedIn:)从序列中排除某些内容:

let str = "abc\ndef\nghi"
let charsNumber = str.characters.filter {$0 != "\n" && $0 != "\r"}.count
print(charsNumber) //-> 9

如果str非常大,这可能会更有效:

let charsNumber = str.characters.lazy.filter {$0 != "\n" && $0 != "\r"}.count

答案 1 :(得分:2)

您可以使用:

str.replacingOccurrences(of: "\n", with: "", options: String.CompareOptions(rawValue: 0), range: nil).characters.count

答案 2 :(得分:2)

您还可以使用String方法enumerateLines来对字符串行的字符数进行求和,如下所示:

let str = "abc\nabc\nabc\n"
var charsNumber = 0
str.enumerateLines { line, _ in charsNumber += line.characters.count }

print(charsNumber)   // 9