斯威夫特 - 删除"字符串中的字符

时间:2014-08-31 10:50:55

标签: ios xcode string swift

我有一个字符串是"可选(" 5")"。我需要删除""围绕着5.我已经删除了“可选'通过做:

text2 = text2.stringByReplacingOccurrencesOfString("Optional(", withString: "", options: NSStringCompareOptions.LiteralSearch, range: nil)

我很难移除"字符,因为它们在代码中指定字符串的结尾。

12 个答案:

答案 0 :(得分:138)

Swift使用反斜杠来转义双引号。以下是Swift中转义的特殊字符列表:

  
      
  • \0(空字符)
  •   
  • \\(反斜杠)
  •   
  • \t(水平标签)
  •   
  • \n(换行)
  •   
  • \r(回车)
  •   
  • \"(双引号)
  •   
  • \'(单引号)
  •   

这应该有效:

text2 = text2.replacingOccurrences(of: "\\", with: "", options: NSString.CompareOptions.literal, range: nil)

答案 1 :(得分:46)

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个十六进制数字之间
  •   

如果您需要更多详细信息,可以查看官方文档here

答案 2 :(得分:20)

这是swift 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})

答案 3 :(得分:9)

要删除可选项,您应该只执行此操作

println("\(text2!)")

因为你不使用“!”它采用text2的可选值

要从5中删除“”,你必须将它转换为NSInteger或NSNumber容易peasy。它有“”导致它的字符串。

答案 4 :(得分:6)

我最终让它在操场上工作,我正在尝试从字符串中删除多个字符:

$this->view->userTagsComma = $skills[0] == 'No Skills Set' ? array() : $skills;

Phalcon\Tag::select(array('user-skills-input',
    TagsStandard::find("status = 1"),
    "using" => array("name", "name"),
    "class" => "select-chosen",
    "type" => "text",
    "data-role" => "tagsinput",
    "value" => $userTagsComma,
    "multiple" => "multiple"
)); 

答案 5 :(得分:4)

正如Martin R所说,你的字符串“Optional(”5“)”看起来你做错了什么。

dasblinkenlight回答你这很好,但对于未来的读者,我会尝试添加替代代码:

if let realString = yourOriginalString {
    text2 = realString
} else {
    text2 = ""
}
你的例子中的

text2看起来像String,它可能已经设置为“”但看起来你有一个类型为Optional(String)的yourOriginalString,它没有被强制转换或正确使用。

我希望这可以帮助一些读者。

答案 6 :(得分:1)

如果您要从字符串中删除更多字符,例如“ a”,“ A”,“ b”,“ B”,“ c”,“ C”,则可以这样做:

someString = someString.replacingOccurrences(of: "[abc]", with: "", options: [.regularExpression, .caseInsensitive])

答案 7 :(得分:1)

如果在尝试在可选的 Int 或 String 中打印 5 的值时获得输出 Optional(5),则应先解开该值:

if value != nil
{ print(value)
}

或者你可以使用这个:

if let value = text {
    print(value)
}

或者简单的只有 1 行答案:

print(value ?? "")

最后一行将检查变量 'value' 是否有任何分配给它的值,如果没有则打印空字符串

答案 8 :(得分:0)

您已将text2实例化为Optional(例如var text2:String?)。 这就是你在字符串中收到Optional(“5”)的原因。 拿走?并替换为:

var text2: String = ""

答案 9 :(得分:0)

假设您有一个字符串:

var string = "potatoes + carrots"

您想用“番茄”替换该字符串中的“马铃薯”

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"

答案 10 :(得分:0)

如果尝试在可选的 Int String 中打印Optional(5)的值时得到了输出5,则应取消包装首先输入值:

if let value = text {
    print(value)
}

现在,您所获得的值没有Swift之前未解开值时添加的“可选”字符串。

答案 11 :(得分:0)

替换为删除不是很合逻辑。 String.filter允许按char迭代字符串char并仅保留真正的断言。

快速4和5

aString = aString.filter { $0 != "\\"" }

或扩展

filteredChars = "\"\n\t"

aString = aString.filter { filteredChars.range(of: $0) != nil }