我有一个字符串,它是“ Optional(“ 5”)“。我需要删除5号周围的“”。我通过执行以下操作删除了“可选”项:
text2 = text2.stringByReplacingOccurrencesOfString("Optional(", withString: "", options: NSStringCompareOptions.LiteralSearch, range: nil)
我在删除“字符时遇到困难,因为它们在代码中指定了字符串的结尾。
Answers:
Swift使用反斜杠转义双引号。这是Swift中转义的特殊字符的列表:
\0
(空字符)\\
(反斜杠)\t
(水平标签)\n
(换行)\r
(回车)\"
(双引号)\'
(单引号)
这应该工作:
text2 = text2.replacingOccurrences(of: "\\", with: "", options: NSString.CompareOptions.literal, range: nil)
这是迅速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})
我最终将其在操场上使用,尝试从字符串中删除多个字符:
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
如果要从字符串中删除更多字符,例如“ a”,“ A”,“ b”,“ B”,“ c”,“ C”,则可以这样操作:
someString = someString.replacingOccurrences(of: "[abc]", with: "", options: [.regularExpression, .caseInsensitive])
正如Martin R所说,您的字符串“ Optional(” 5“)”好像您做错了什么。
dasblinkenlight会回答您,所以很好,但是对于将来的读者,我将尝试添加以下替代代码:
if let realString = yourOriginalString {
text2 = realString
} else {
text2 = ""
}
您的示例中的text2看起来像String,并且可能已经设置为“”,但是看起来您在某个未正确使用或未正确使用的地方有一个类型为Optional(String)的yourOriginalString。
我希望这可以对一些读者有所帮助。
let resultingString = optionalString ?? ""
。
替换删除不是很合逻辑。String.filter允许按char迭代字符串char并仅保留true断言。
斯威夫特4&5
var aString = "Optional(\"5\")"
aString = aString.filter { $0 != "\"" }
> Optional(5)
或扩展
var aString = "Optional(\"5\")"
let filteredChars = "\"\n\t"
aString = aString.filter { filteredChars.range(of: String($0)) == nil }
> Optional(5)
假设您有一个字符串:
var string = "potatoes + carrots"
并且您想用“ tomatoes”替换该字符串中的“ potatoes”一词
string = string.replacingOccurrences(of: "potatoes", with: "tomatoes", options: NSString.CompareOptions.literal, range: nil)
如果您打印字符串,现在将是: "tomatoes + carrots"
如果要完全从the中删除土豆一词,可以使用:
string = string.replacingOccurrences(of: "potatoes", with: "", options: NSString.CompareOptions.literal, range: nil)
如果要在字符串中使用其他字符,请使用:
- 空字符(\ 0)
- 反斜杠(\)
- 水平制表符(\ t)
- 换行(\ n)
- 回车(\ r)
- 双引号(\“)
- 单引号(\')
例:
string = string.replacingOccurrences(of: "potatoes", with: "dog\'s toys", options: NSString.CompareOptions.literal, range: nil)
输出: "dog's toys + carrots"
您已将text2实例化为Optional(例如var text2:String?)。这就是为什么您在字符串中收到Optional(“ 5”)的原因。带走了?并替换为:
var text2: String = ""
如果Optional(5)
尝试打印5
可选的Int或String中的值时得到输出,则应首先解包该值:
if let value = text {
print(value)
}
现在,您获得的值不包含之前未解开值时Swift会添加的“可选”字符串。
Optional("5")
则可能是更早出现了问题,因为这是对可选字符串的描述。在将可选内容分配给之前text2
,先解开可选内容,而不是从文本上删除“ Optional(..)”会更有意义。