Nat*_*ook 49
extension String {
func condensingWhitespace() -> String {
return self.components(separatedBy: .whitespacesAndNewlines)
.filter { !$0.isEmpty }
.joined(separator: " ")
}
}
let string = " Lorem \r ipsum dolar sit amet. "
print(string.condensingWhitespace())
// Lorem ipsum dolar sit amet.
Run Code Online (Sandbox Code Playgroud)
NSCharacterSet 让这很容易:
func condenseWhitespace(string: String) -> String {
let components = string.componentsSeparatedByCharactersInSet(NSCharacterSet.whitespaceAndNewlineCharacterSet()).filter({!isEmpty($0)})
return join(" ", components)
}
var string = " Lorem \r ipsum dolar sit amet. "
println(condenseWhitespace(string))
// Lorem ipsum dolar sit amet.
Run Code Online (Sandbox Code Playgroud)
或者如果您希望它作为String扩展名:
extension String {
func condenseWhitespace() -> String {
let components = self.componentsSeparatedByCharactersInSet(NSCharacterSet.whitespaceAndNewlineCharacterSet()).filter({!Swift.isEmpty($0)})
return " ".join(components)
}
}
var string = " Lorem \r ipsum dolar sit amet. "
println(string.condenseWhitespace())
// Lorem ipsum dolar sit amet.
Run Code Online (Sandbox Code Playgroud)
全部归功于NSCharacterSet上的NSHipster帖子.
Vas*_*ily 11
Swift 2兼容代码:
extension String {
var removeExcessiveSpaces: String {
let components = self.componentsSeparatedByCharactersInSet(NSCharacterSet.whitespaceCharacterSet())
let filtered = components.filter({!$0.isEmpty})
return filtered.joinWithSeparator(" ")
}
}
Run Code Online (Sandbox Code Playgroud)
用法:
let str = "test spaces too many"
print(str.removeExcessiveSpaces)
// Output: test spaces too many
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
17567 次 |
| 最近记录: |