我应该如何从字符串中删除所有空行

Tho*_*mas 4 string ios swift

我从api得到一个字符串值,并且有很多无用的空行:

bla bla bla


bla

bla bla bla
Run Code Online (Sandbox Code Playgroud)

我想删除那些空行以获得此结果:

bla bla bla
bla
bla bla bla
Run Code Online (Sandbox Code Playgroud)

我该怎么办?

Leo*_*bus 11

您可以使用StringProtocolsplit方法func split(maxSplits:, omittingEmptySubsequences:, whereSeparator:) -> [SubSequence]并将omittingEmptySubsequences设置为true,并将闭包作为谓词传递{ $0.isNewline }.然后你只需要使用join(separator:"\n")`来再次连接你的字符串:

let string = "bla bla bla\n\n\nbla\nbla bla bla\n"
let lines = string.split { $0.isNewline }
let result = lines.joined(separator: "\n")

print(result)  // "bla bla bla\nbla\nbla bla bla"
Run Code Online (Sandbox Code Playgroud)

或者作为以下内容的延伸StringProtocol:

extension StringProtocol {
    var lines: [SubSequence] {
        return split { $0.isNewline }
    }
    var removingAllExtraNewLines: String {
        return lines.joined(separator: "\n")
    }
}
string.lines  // ["bla bla bla", "bla", "bla bla bla"]
string.removingAllExtraNewLines  // "bla bla bla\nbla\nbla bla bla"
Run Code Online (Sandbox Code Playgroud)