我有一个字符串是"可选(" 5")"。我需要删除""围绕着5.我已经删除了“可选'通过做:
text2 = text2.stringByReplacingOccurrencesOfString("Optional(", withString: "", options: NSStringCompareOptions.LiteralSearch, range: nil)
我很难移除"字符,因为它们在代码中指定字符串的结尾。
答案 0 :(得分:138)
Swift使用反斜杠来转义双引号。以下是Swift中转义的特殊字符列表:
\0
(空字符)\\
(反斜杠)\t
(水平标签)\n
(换行)\r
(回车)\"
(双引号)\'
(单引号)
这应该有效:
text2 = text2.replacingOccurrences(of: "\\", with: "", options: NSString.CompareOptions.literal, range: nil)
答案 1 :(得分:46)
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 }