String 如何使用纯Swift删除字符串中的空白?
现在,我正在练习斯威夫特语 我创建了一个String 如何使用纯Swift删除字符串中的空白?,string,swift,String,Swift,现在,我正在练习斯威夫特语 我创建了一个StringHelper类 它将一个字符串保存在str属性中,并使用一个方法返回相同的字符串,不带空格 class StringHelper { let str:String init(str:String) { self.str = str } func removeSpace() -> String { //how to code } } let myStr = S
StringHelper
类
它将一个字符串保存在str
属性中,并使用一个方法返回相同的字符串,不带空格
class StringHelper {
let str:String
init(str:String) {
self.str = str
}
func removeSpace() -> String {
//how to code
}
}
let myStr = StringHelper(str: "hello swift")
myStr.removeSpace()//it should print 'helloswift'
我只想使用Swift语言。。。不是
NSString
方法,因为我只是在练习使用Swift。这是一个更通用的问题版本,下面是您所追求的实现:
func removeSpace() -> String {
let whitespace = " "
let replaced = String(map(whitespace.generate()) {
$0 == " " ? "" : $0
})
return replaced
}
如果您喜欢简洁:
func removeSpace() -> String {
return String(map(" ".generate()) { $0 == " " ? "" : $0 })
}
或者,如果您使用的是Swift 2: 同样,更简洁地说:
func removeSpace() -> String {
return String(" ".characters.map { $0 == " " ? "" : $0 })
}
下面是一个使用
过滤器的函数方法:
Swift 1.2:
let str = " remove spaces please "
let newstr = String(filter(Array(str), {$0 != " "}))
println(newstr) // prints "removespacesplease"
let newstr = String(str.characters.filter {$0 != " "})
print(newstr)
let newstr = String(filter(Array(str), {!contains([" ", "\t", "\n"], $0)}))
let newstr = String(str.characters.filter {![" ", "\t", "\n"].contains($0)})
Swift 2/3:
let str = " remove spaces please "
let newstr = String(filter(Array(str), {$0 != " "}))
println(newstr) // prints "removespacesplease"
let newstr = String(str.characters.filter {$0 != " "})
print(newstr)
let newstr = String(filter(Array(str), {!contains([" ", "\t", "\n"], $0)}))
let newstr = String(str.characters.filter {![" ", "\t", "\n"].contains($0)})
其思想是将字符串
分解成一个字符
数组,然后使用过滤器
删除所有字符
中非空格的”
,然后使用字符串()
初始值设定项从数组中创建一个新字符串
如果还要删除换行符“\n”
和制表符“\t”
,可以使用包含:
Swift 1.2:
let str = " remove spaces please "
let newstr = String(filter(Array(str), {$0 != " "}))
println(newstr) // prints "removespacesplease"
let newstr = String(str.characters.filter {$0 != " "})
print(newstr)
let newstr = String(filter(Array(str), {!contains([" ", "\t", "\n"], $0)}))
let newstr = String(str.characters.filter {![" ", "\t", "\n"].contains($0)})
Swift 2/3:
let str = " remove spaces please "
let newstr = String(filter(Array(str), {$0 != " "}))
println(newstr) // prints "removespacesplease"
let newstr = String(str.characters.filter {$0 != " "})
print(newstr)
let newstr = String(filter(Array(str), {!contains([" ", "\t", "\n"], $0)}))
let newstr = String(str.characters.filter {![" ", "\t", "\n"].contains($0)})
您可以使用以下命令:return str.stringByReplacingOccurrencesOfString(“,with string:”)
位于//how to code
@DánielNagystringByReplacingOccurrencesOfString
的第行,它很酷,但它是一个NSString方法。“OP想要纯粹的斯威夫特。”埃里克。你是对的,在这种情况下这是不好的