如何使用纯Swift删除String中的空格?

alp*_*nse 2 string swift

现在,我正在练习Swift语言.

我创建了一个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'
Run Code Online (Sandbox Code Playgroud)

我只想使用Swift语言...而不是NSString方法,因为我只是练习使用Swift.

vac*_*ama 7

这是一个功能方法,使用filter:

Swift 1.2:

let str = "  remove  spaces please "

let newstr = String(filter(Array(str), {$0 != " "}))
println(newstr)  // prints "removespacesplease"
Run Code Online (Sandbox Code Playgroud)

斯威夫特2/3:

let newstr = String(str.characters.filter {$0 != " "})
print(newstr)
Run Code Online (Sandbox Code Playgroud)

我的想法是将s 分解String为一个数组Character,然后使用filter删除所有Character不是空格的s,然后使用初始化程序" "从数组中创建一个新字符串String().


如果您还想删除换行符"\n"和标签页"\t",可以使用contains:

Swift 1.2:

let newstr = String(filter(Array(str), {!contains([" ", "\t", "\n"], $0)}))
Run Code Online (Sandbox Code Playgroud)

斯威夫特2/3:

let newstr = String(str.characters.filter {![" ", "\t", "\n"].contains($0)})
Run Code Online (Sandbox Code Playgroud)