web-dev-qa-db-ja.com

Swift-文字列から "文字を削除

「Optional( "5")」という文字列があります。 5を囲む「」を削除する必要があります。「オプション」を削除するには、次のようにします。

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

コード内の文字列の終わりを示す「」文字を削除するのが困難です。

62
Calan Williams

Swiftはバックスラッシュを使用して二重引用符をエスケープします。 Swiftでエスケープされた特殊文字のリストは次のとおりです。

  • \0(ヌル文字)
  • \\(バックスラッシュ)
  • \t(水平タブ)
  • \n(改行)
  • \r(キャリッジリターン)
  • \"(二重引用符)
  • \'(単一引用符)

これは動作するはずです:

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

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桁の16進数

さらに詳細が必要な場合は、公式ドキュメントをご覧ください here

46

ここに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})
20

オプションを削除するには、これを行う必要があります

println("\(text2!)")

「!」を使用しない場合text2のオプション値を取ります

5から「」を削除するには、NSIntegerまたはNSNumberに変換する必要があります。文字列「」が原因です。

9
Norolim

私は最終的にこれを遊び場で動作させ、文字列から複数の文字を削除しようとしています:

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
6
Getafix

Martin Rが言うように、文字列「Optional( "5")」は、何か間違ったことをしたようです。

dasblinkenlightがあなたに答えるので問題ありませんが、将来の読者のために、代替コードを次のように追加しようとします。

if let realString = yourOriginalString {
    text2 = realString
} else {
    text2 = ""
}

この例のtext2はStringのように見え、すでに ""に設定されているかもしれませんが、オプション(String)型のyourOriginalStringがキャストまたは使用されていない場所にあるようです。

これが読者の助けになることを願っています。

4
Dam

たとえば、文字列から「a」、「A」、「b」、「B」、「c」、「C」などの文字をさらに削除する場合は、次のようにします。

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

オプションのIntまたはString5の値を印刷しようとしたときに出力Optional(5)を取得している場合は、最初に値をアンラップする必要があります。

if let value = text {
    print(value)
}

これで、値が以前にアンラップされていないときにSwiftが追加する「オプション」文字列のない値が得られました。

0
Ale Mohamad

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"

0
Mini Official