我想计算Swift中的字符数。我正在使用此代码
let charsNumber = str.characters.count
返回字符数并返回。有没有办法可以算出没有回报的角色?
答案 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