wake-up-neo.net

Swift - Remove "Zeichen aus Zeichenfolge

Ich habe eine Zeichenfolge, die "Optional (" 5 ")" ist. Ich muss das "" entfernen, das die "5" umgibt. Ich habe das "optional" entfernt, indem ich Folgendes getan habe:

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

Ich habe Schwierigkeiten, die "Zeichen zu entfernen, da sie das Ende einer Zeichenfolge im Code angeben.

57
Calan Williams

Swift verwendet Backslash, um doppelte Anführungszeichen zu vermeiden. Hier ist die Liste der Escape-Sonderzeichen in Swift:

  • \0 (nullzeichen)
  • \\ (umgekehrter Schrägstrich)
  • \t (horizontale Registerkarte)
  • \n (Zeilenvorschub)
  • \r (Wagenrücklauf)
  • \" (doppelte Anführungszeichen)
  • \' (einfaches Zitat)

Das sollte funktionieren:

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

Swift 3 und Swift 4:

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

Letzte Dokumente, die auf Swift 3.0.1 aktualisiert wurden, haben:

  • Nullzeichen (\0)
  • Backslash (\\)
  • Horizontale Registerkarte (\t)
  • Zeilenvorschub (\n)
  • Wagenrücklauf (\r)
  • Doppelter Anführungsstrich (\")
  • Einzelzitat (\')
  • Unicode-Skalar (\u{n}), wobei n zwischen einer und acht Hexadezimalstellen steht

Wenn Sie mehr Details benötigen, können Sie die offiziellen Dokumente hier einsehen. 

44

Hier ist die Swift 3 aktualisierte Antwort

  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

Um das Optionale zu entfernen, sollten Sie dies nur tun

println("\(text2!)")

ursache, wenn Sie nicht "!" Es nimmt den optionalen Wert von Text2

Um "" von 5 zu entfernen, müssen Sie es in NSInteger oder NSNumber easy peasy konvertieren. Es hat eine Zeichenfolge.

9
Norolim

Irgendwann habe ich das für die Arbeit auf dem Spielplatz verstanden, da ich mehrere Charaktere habe, die ich aus einem String entfernen möchte:

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

Wie Martin R sagt, sieht Ihre Zeichenfolge "Optional (" 5 ") so aus, als hätten Sie etwas falsch gemacht.

dasblinkenlight antwortet Ihnen damit es in Ordnung ist, aber für zukünftige Leser werde ich versuchen, alternativen Code hinzuzufügen:

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

text2 in Ihrem Beispiel sieht aus wie String und ist möglicherweise bereits auf "" gesetzt, aber es scheint, als hätten Sie IhrenOriginalString vom Typ Optional (String) an einer Stelle, an der er nicht richtig angewendet wurde.

Ich hoffe, das kann einigen Lesern helfen.

4
Dam

Wenn Sie weitere Zeichen wie "a", "A", "b", "B", "c", "C" aus "string" entfernen möchten, können Sie dies folgendermaßen tun:

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

Wenn Sie die Ausgabe Optional(5) erhalten, wenn Sie versuchen, den Wert von 5 in einem optionalen Int oder String zu drucken, sollten Sie den Wert zuerst auspacken:

if let value = text {
    print(value)
}

Jetzt haben Sie den Wert ohne die "optionale" Zeichenfolge, die Swift hinzufügt, wenn der Wert zuvor nicht entpackt wurde.

0
Ale Mohamad

Sie haben text2 als Optional instanziiert (z. B. var text2: String?) . Deshalb erhalten Sie optional ("5") in Ihrem String. die wegnehmen? und ersetzen mit:

var text2: String = ""

Nehmen wir an, Sie haben einen String:

var string = "potatoes + carrots"

Und Sie möchten das Wort "Kartoffeln" in dieser Zeichenfolge durch "Tomaten" ersetzen.

string = string.replacingOccurrences(of: "potatoes", with: "tomatoes", options: NSString.CompareOptions.literal, range: nil)

Wenn Sie Ihre Zeichenfolge ausdrucken, wird es jetzt Folgendes sein: "tomatoes + carrots"

Wenn Sie die Word-Kartoffeln ganz aus dem Stachel entfernen möchten, können Sie Folgendes verwenden:

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

Wenn Sie andere Zeichen in Ihrem Stich verwenden möchten, verwenden Sie:

  • Nullzeichen (\ 0)
  • Backslash (\)
  • Horizontale Registerkarte (\ t)
  • Zeilenvorschub (\ n)
  • Wagenrücklauf (\ r)
  • Doppelter Anführungsstrich (\ ")
  • Einzelzitat (\ ')

Beispiel:

string = string.replacingOccurrences(of: "potatoes", with: "dog\'s toys", options: NSString.CompareOptions.literal, range: nil)

Ausgabe: "dog's toys + carrots"

0
Mini Official