Kat*_* Zz 9 string whitespace swift
这有效
let replaced = String(map(aString.generate()) {
$0 == " " ? "-" : $0 })
Run Code Online (Sandbox Code Playgroud)
而这不是
let replaced = String(map(aString.generate()) {
$0 == " " ? "" : $0 })
Run Code Online (Sandbox Code Playgroud)
为什么?
Sha*_*yag 18
对于Swift 5:
" spaces here ".replacingOccurrences(of: " ", with: "")
Run Code Online (Sandbox Code Playgroud)
返回:
"spaceshere"
Run Code Online (Sandbox Code Playgroud)
Mar*_*n R 12
枚举一个字符串给出了一系列字符,因此$0在闭包内部有类型Character.这编译
{ $0 == " " ? "-" : $0 }
Run Code Online (Sandbox Code Playgroud)
因为"-"在此上下文中被解释为字符文字,因此与...相同$0.但
{ $0 == " " ? "" : $0 }
Run Code Online (Sandbox Code Playgroud)
不编译,因为""是不字符文字(在条件表达式a ? b : c的操作数b,并c
必须具有相同的类型).
您可以通过转换$0为字符串来解决此问题:
{ $0 == " " ? "" : String($0) }
Run Code Online (Sandbox Code Playgroud)
但现在映射返回一个字符串数组而不是一个字符数组.因此,String()您必须加入结果而不是构造函数:
let replaced = "".join(map(aString) { $0 == " " ? "" : String($0) })
// Swift 2 / Xcode 7:
let replaced = "".join(aString.characters.map({ $0 == " " ? "" : String($0) }))
Run Code Online (Sandbox Code Playgroud)
(注意,generate()不需要显式调用.)
当然也可以实现相同的结果
let replaced = aString.stringByReplacingOccurrencesOfString(" ", withString: "")
Run Code Online (Sandbox Code Playgroud)
如果要删除字符串前后的空格,这在用户输入表单中非常有用,可以使用:
let replaced = aString.stringByTrimmingCharactersInSet(NSCharacterSet.whitespaceCharacterSet())
Run Code Online (Sandbox Code Playgroud)
您也可以将其直接应用于文本字段。
如果你想从字符串中删除空格,那么只需用stringByReplacingOccurrencesOfString函数传递字符串,如下所示,
let replacedString = string.stringByReplacingOccurrencesOfString(" ", withString: "")
Run Code Online (Sandbox Code Playgroud)
对于文本字段,您可以直接应用UITextField的对象,
let replacedString = textField.text!.stringByReplacingOccurrencesOfString(" ", withString: "")
Run Code Online (Sandbox Code Playgroud)
这应该适用于Swift 2.2:
let replaced = String(aString.characters.filter {$0 != " "})
Run Code Online (Sandbox Code Playgroud)
您正在映射,因此应保留元素的数量。在第二种情况下,您删除元素。即使您替换为 ,您的示例也会" "失败--。
您可能更喜欢使用filter:
let replaced = String(filter(aString.generate()) { $0 != " "})
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
17016 次 |
| 最近记录: |