Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ruby-on-rails-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
String 如何使用纯Swift删除字符串中的空白?_String_Swift - Fatal编程技术网

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ánielNagy
stringByReplacingOccurrencesOfString
的第行,它很酷,但它是一个NSString方法。“OP想要纯粹的斯威夫特。”埃里克。你是对的,在这种情况下这是不好的