gpt4 book ai didi

swift2 - 如何使用 Swift 2 删除字符串中的多个空格

转载 作者:行者123 更新时间:2023-12-03 13:39:29 25 4
gpt4 key购买 nike

在 Swift 2 之前,我使用这个扩展删除了多个空格:

func condenseWhitespace() -> String {
let components = self.componentsSeparatedByCharactersInSet(NSCharacterSet.whitespaceAndNewlineCharacterSet()).filter({!Swift.isEmpty($0)})
return " ".join(components)
}

但是现在使用 Swift 2 时出现错误

Cannot invoke 'isEmpty' with an argument list of type '(String)'



我现在如何使用 Swift 2 删除多个空格?
谢谢!

最佳答案

swift 2 , join已成为joinWithSeparator然后在数组上调用它。

filter , isEmpty应该在当前迭代项上调用 $0 .

如您的问题一样,用唯一的空格字符替换空格和换行符:

extension String {
func condenseWhitespace() -> String {
let components = self.componentsSeparatedByCharactersInSet(NSCharacterSet.whitespaceAndNewlineCharacterSet())
return components.filter { !$0.isEmpty }.joinWithSeparator(" ")
}
}

let result = "Hello World.\nHello!".condenseWhitespace() // "Hello World. Hello!"

因为您的函数不接受任何参数,所以您可以将其设为属性:
extension String {
var condensedWhitespace: String {
let components = self.componentsSeparatedByCharactersInSet(NSCharacterSet.whitespaceAndNewlineCharacterSet())
return components.filter { !$0.isEmpty }.joinWithSeparator(" ")
}
}

let result = "Hello World.\nHello!".condensedWhitespace // "Hello World. Hello!"

swift 3 还有更多变化。

功能:
extension String {
func condenseWhitespace() -> String {
let components = self.components(separatedBy: NSCharacterSet.whitespacesAndNewlines)
return components.filter { !$0.isEmpty }.joined(separator: " ")
}
}

let result = "Hello World.\nHello!".condenseWhitespace()

属性(property):
extension String {
var condensedWhitespace: String {
let components = self.components(separatedBy: NSCharacterSet.whitespacesAndNewlines)
return components.filter { !$0.isEmpty }.joined(separator: " ")
}
}

let result = "Hello World.\nHello!".condensedWhitespace

swift 4.2 NSCharacterSet 现在是 CharacterSet,你可以省略和使用点语法:
extension String {
func condenseWhitespace() -> String {
let components = self.components(separatedBy: .whitespacesAndNewlines)
return components.filter { !$0.isEmpty }.joined(separator: " ")
}
}

let result = "Hello World.\nHello!".condenseWhitespace() // "Hello World. Hello!"

关于swift2 - 如何使用 Swift 2 删除字符串中的多个空格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33058676/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com