Swift – 从string中删除“字符
我有一个string是“可选(”5“)”。 我需要删除“”周围的5.“我已经删除了”可选“,做到:
text2 = text2.stringByReplacingOccurrencesOfString("Optional(", withString: "", options: NSStringCompareOptions.LiteralSearch, range: nil)
我在删除“字符时遇到了困难,因为它们在代码中指定了string的末尾。
Swift使用反斜杠来转义双引号。 以下是Swift中的特殊字符列表:
\0
(空字符)\\
(反斜杠)\t
(水平标签)\n
(换行)\r
(回车)\"
(双引号)- (单引号)
这应该工作:
text2 = text2.stringByReplacingOccurrencesOfString("\"", withString: "", options: NSStringCompareOptions.LiteralSearch, range: nil)
Swift 3和Swift 4:
text2 = text2.textureName.replacingOccurrences(of: "\"", with: "", options: NSString.CompareOptions.literal, range:nil)
最新的文件更新到Swift 3.0.1有:
- 空字符(
\0
)- 反斜杠(
\\
)- 水平制表符(
\t
)- 换行(
\n
)- 回车(
\r
)- 双引号(
\"
)- 单引号(
\'
)- Unicode标量(
\u{n}
),其中n在1到8个hex数字之间
如果你需要更多的细节,你可以看看这里的官方文档
这里是迅速3更新的答案
var editedText = myLabel.text?.replacingOccurrences(of: "\", with: "")
Null Character (\0) Backslash (\\) Horizontal Tab (\t) Line Feed (\n) Carriage Return (\r) Double Quote (\") Single Quote (\') Unicode scalar (\u{n})
要删除可选,你只应该这样做
println("\(text2!)")
因为如果你不使用“!” 它采用text2的可选值
并从5删除“”你必须将其转换为NSInteger或NSNumber容易peasy。 它有“”导致它的一个string。
我最终得到了这个在操场上工作,我想从string中删除多个字符:
var otherstring = "lat\" : 40.7127837,\n" var new = otherstring.stringByTrimmingCharactersInSet(NSCharacterSet.init(charactersInString: "la t, \n \" ':")) count(new) //result = 10 println(new) //yielding what I'm after just the numeric portion 40.7127837
正如马丁R所说,你的string“可选(”5“)”看起来像你做错了什么。
dasblinkenlight回答你,所以它是好的,但对于未来的读者,我会尝试添加替代代码为:
if let realString = yourOriginalString { text2 = realString } else { text2 = "" }
在你的例子中的text2看起来像string,它可能已经设置为“”,但它看起来像你有一个types的可选(string)的yourOriginalString它没有被转换或使用正确的地方。
我希望这可以帮助一些读者。
你已经将text2实例化为一个可选的(例如var text2:String?)。 这就是为什么您的string中接收可选(“5”)。 拿走? 并replace为:
var text2: String = ""