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

标签 ios string swift

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

bla bla bla


bla

bla bla bla

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

bla bla bla
bla
bla bla bla

我该如何继续?

最佳答案

编辑/更新:

Swift 5.2 或更高版本

可以使用StringProtocol拆分方法

func split(maxSplits: Int = Int.max, omittingEmptySubsequences: Bool = true, whereSeparator isSeparator: (Character) throws -> Bool) rethrows -> [Substring]

并传递一个字符属性 isNewline 作为 KeyPath。然后你只需要使用 joined(separator: "\n")` 再次连接你的字符串:

let string = "bla bla bla\n\n\nbla\nbla bla bla\n"
let lines = string.split(whereSeparator: \.isNewline)
let result = lines.joined(separator: "\n")

print(result)  // "bla bla bla\nbla\nbla bla bla"

或者作为StringProtocol的扩展:

extension StringProtocol {
    var lines: [SubSequence] { split(whereSeparator: \.isNewline) }
    var removingAllExtraNewLines: String { lines.joined(separator: "\n") }
}

string.lines  // ["bla bla bla", "bla", "bla bla bla"]
string.removingAllExtraNewLines  // "bla bla bla\nbla\nbla bla bla"

关于ios - 我应该如何从字符串中删除所有空行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35897807/

相关文章:

ios - xcode llvm 5.0错误没有这样的文件或目录

python - str(Series).split() 和 Series.str.split() 有什么区别?

c# - 如何在 Swift 中创建 SaS token ?

string - 重写 Haskell 中 String/Char 的 show 方法

r - 在 R 中,如何提取左括号之前的所有文本?

ios - 类型 'customDataObject' 不符合协议(protocol) 'Sequence'

swift - 在之前结束函数之后执行函数

ios - 使用字符串数组填充 UI TableView

ios - 主屏幕上是否有外观和行为类似于 iOS 密码的 native iOS 元素?

ios - 划分 iOS API 可用性