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 = ""