在Swift 2之前,我使用这个扩展来删除多个空格:
func condenseWhitespace() -> String {
let components = self.componentsSeparatedByCharactersInSet(NSCharacterSet.whitespaceAndNewlineCharacterSet()).filter({!Swift.isEmpty($0)})
return " ".join(components)
}
但现在使用Swift 2时,我得到了错误
无法使用类型为“(String)”的参数列表调用“isEmpty”
我现在怎么能用雨燕2删除多个空格呢?Thnx!
6条答案
按热度按时间bxgwgixi1#
在Swift 2中,
join
已经变成了joinWithSeparator
,您可以在数组上调用它。在
filter
中,isEmpty
应该在目前的反覆项目$0
上呼叫。如您的问题所示,将空格和换行符替换为唯一的空格字符:
因为您的函数不接受任何参数,所以您可以将它改为属性:
在Swift 3中,有更多的变化。
功能:
属性:
在**Swift 4.2中,**NSCharacterSet现在是CharacterSet,您可以省略并使用点语法:
nqwrtyyt2#
Splitstring to array,然后joininnot memory efficient.它占用大量内存.在这种情况下,最好的方法是扫描给定的字符串并对其执行操作.正则表达式是扫描文本的高级方法.对于上述结论,下面给出了解决方案:
斯威夫特4.x
用法
输出:
processedString =〉“你好,世界!我在这里!"
你可以根据自己的要求做更多的事情,但我在这里指出的是,使用正则表达式与字符串,而不是创建数组,这将消耗大量的内存。
0mkxixxg3#
最干净的版本。有文档记录,内存效率高,非常易于使用。
用法:
输出:
a:“你好我是一根弦”
B:“你好大串”
hec6srdp4#
SWIFT 3:更干净的版本
3j86kqsm5#
我的答案是:它是如何运作的。
用法
输出:
人生的目的是什么?
cu6pst1q6#