「Optional( "5")」という文字列があります。 5を囲む「」を削除する必要があります。「オプション」を削除するには、次のようにします。
text2 = text2.stringByReplacingOccurrencesOfString("Optional(", withString: "", options: NSStringCompareOptions.LiteralSearch, range: nil)
コード内の文字列の終わりを示す「」文字を削除するのが困難です。
Swiftはバックスラッシュを使用して二重引用符をエスケープします。 Swiftでエスケープされた特殊文字のリストは次のとおりです。
\0
(ヌル文字)\\
(バックスラッシュ)\t
(水平タブ)\n
(改行)\r
(キャリッジリターン)\"
(二重引用符)\'
(単一引用符)
これは動作するはずです:
text2 = text2.replacingOccurrences(of: "\\", with: "", options: NSString.CompareOptions.literal, range: nil)
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桁の16進数
さらに詳細が必要な場合は、公式ドキュメントをご覧ください here
ここに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})
オプションを削除するには、これを行う必要があります
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
Martin Rが言うように、文字列「Optional( "5")」は、何か間違ったことをしたようです。
dasblinkenlightがあなたに答えるので問題ありませんが、将来の読者のために、代替コードを次のように追加しようとします。
if let realString = yourOriginalString {
text2 = realString
} else {
text2 = ""
}
この例のtext2はStringのように見え、すでに ""に設定されているかもしれませんが、オプション(String)型のyourOriginalStringがキャストまたは使用されていない場所にあるようです。
これが読者の助けになることを願っています。
たとえば、文字列から「a」、「A」、「b」、「B」、「c」、「C」などの文字をさらに削除する場合は、次のようにします。
someString = someString.replacingOccurrences(of: "[abc]", with: "", options: [.regularExpression, .caseInsensitive])
オプションのIntまたはStringで5
の値を印刷しようとしたときに出力Optional(5)
を取得している場合は、最初に値をアンラップする必要があります。
if let value = text {
print(value)
}
これで、値が以前にアンラップされていないときにSwiftが追加する「オプション」文字列のない値が得られました。
Text2をオプションとしてインスタンス化しました(例:var text2:String?)。これが、文字列でOptional( "5")を受け取る理由です。奪う?に置き換えます:
var text2: String = ""
文字列があるとしましょう:
var string = "potatoes + carrots"
そして、あなたはその文字列の単語「ジャガイモ」を「トマト」に置き換えたい
string = string.replacingOccurrences(of: "potatoes", with: "tomatoes", options: NSString.CompareOptions.literal, range: nil)
文字列を印刷すると、次のようになります:"tomatoes + carrots"
Wordポテトをスティングから完全に削除する場合は、次を使用できます。
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"