我有一个字符串是 "Optional("5")"
。我需要去掉包围数字 5
的双引号 ""
。我已经通过以下方法移除了 Optional
:
text2 = text2.stringByReplacingOccurrencesOfString("Optional(", withString: "", options: NSStringCompareOptions.LiteralSearch, range: nil)
由于在代码中,"
字符表示字符串的结束,因此我很难将其删除。
text2 = text2.replacingOccurrences(of: "\\", with: "", options: NSString.CompareOptions.literal, range: nil)
text2 = text2.textureName.replacingOccurrences(of: "\"", with: "", options: NSString.CompareOptions.literal, range:nil)
\0
)
- 反斜杠(\\
)
- 水平制表符(\t
)
- 换行符(\n
)
- 回车符(\r
)
- 双引号(\"
)
- 单引号(\'
)
- Unicode标量(\u{n}
),其中n为一到八个十六进制数字。这里是更新至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})
将“替换”改为“删除”并不太合逻辑。String.filter允许逐个字符迭代字符串并仅保留真实断言。
Swift 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)
println("\(text2!)")
如果你没有使用 "!",它会带上 text2 的可选值。
要从 5 中去除 "",你需要将其转换为 NSInteger 或 NSNumber。这是因为它是一个字符串。
我最终在示例中成功实现了以下功能:尝试从字符串中删除多个字符:
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看起来像是字符串,可能已经被设置为空字符串,但是你似乎在某处有一个类型为Optional(String)的yourOriginalString,它没有被正确地转换或使用。
我希望这能帮助一些读者。
let resultingString = optionalString ?? ""
。 - Kilian假设您有一个字符串:
var string = "potatoes + carrots"
你想在该字符串中用“番茄”替换“土豆”这个词。
string = string.replacingOccurrences(of: "potatoes", with: "tomatoes", options: NSString.CompareOptions.literal, range: nil)
"tomatoes + carrots"
如果您想完全删除字符串中的单词potatoes,您可以使用: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)
"狗的玩具 + 胡萝卜"
Swift 5(进行中)。仅需1行代码。
用于删除单个/多个字符。
trimmingCharacters(in: CharacterSet)
实际运用:
var yourString:String = "(\"This Is: Your String\")"
yourString = yourString.trimmingCharacters(in: ["("," ",":","\"",")"])
print(yourString)
输出:
ThisIsYourString
Set
,你需要对它们进行修剪。
Optional("5")
,那么可能之前出了一些问题,因为这是可选字符串的描述。在将其文本内容删除之前,将可选项解包后再分配给text2
会更有意义。请注意,不要改变原来的意思。 - Martin R