Ich habe eine Zeichenfolge, die "Optional (" 5 ")" ist. Ich muss das "" um die 5 entfernen. Ich habe das "Optional" entfernt, indem ich:
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 kennzeichnen.
Optional("5")
ist wahrscheinlich früher ein Fehler aufgetreten, da dies die Beschreibung einer optionalen Zeichenfolge ist. Es wäre sinnvoller, das Optionale vor dem Zuweisen zu entpackentext2
, anstatt das "Optional (..)" textuell zu entfernen.Antworten:
Swift verwendet Backslash, um doppelte Anführungszeichen zu vermeiden. Hier ist die Liste der entkommenen Sonderzeichen in Swift:
Das sollte funktionieren:
text2 = text2.replacingOccurrences(of: "\\", with: "", options: NSString.CompareOptions.literal, range: nil)
quelle
Swift 3 und Swift 4:
text2 = text2.textureName.replacingOccurrences(of: "\"", with: "", options: NSString.CompareOptions.literal, range:nil)
Die neuesten auf Swift 3.0.1 aktualisierten Dokumente haben:
Wenn Sie weitere Informationen benötigen, können Sie die offiziellen Dokumente hier einsehen
quelle
Hier ist die schnelle 3 aktualisierte Antwort
var editedText = myLabel.text?.replacingOccurrences(of: "\"", with: "")
quelle
Um das optionale zu entfernen, sollten Sie dies nur tun
println("\(text2!)")
Ursache, wenn Sie nicht "!" es nimmt den optionalen Wert von text2 an
Und um "" von 5 zu entfernen, müssen Sie es in NSInteger oder NSNumber easy peasy konvertieren. Es hat "", weil es eine Zeichenfolge ist.
quelle
Ich habe das irgendwann auf dem Spielplatz zum Laufen gebracht und habe mehrere Charaktere, die ich aus einer Zeichenfolge 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
quelle
Wenn Sie weitere Zeichen entfernen möchten, z. B. "a", "A", "b", "B", "c", "C", können Sie dies folgendermaßen tun:
someString = someString.replacingOccurrences(of: "[abc]", with: "", options: [.regularExpression, .caseInsensitive])
quelle
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 als:
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 sieht so aus, als hätten Sie irgendwo einen yourOriginalString vom Typ Optional (String), den er nicht richtig umgewandelt oder verwendet hat.
Ich hoffe, das kann einigen Lesern helfen.
quelle
let resultingString = optionalString ?? ""
.Das Ersetzen zum Entfernen ist nicht ganz logisch. Mit String.filter können Sie einen String char für char iterieren und nur die wahre Behauptung beibehalten.
Swift 4 & 5
var aString = "Optional(\"5\")" aString = aString.filter { $0 != "\"" } > Optional(5)
Oder zu verlängern
var aString = "Optional(\"5\")" let filteredChars = "\"\n\t" aString = aString.filter { filteredChars.range(of: String($0)) == nil } > Optional(5)
quelle
Angenommen, Sie haben eine Zeichenfolge:
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 drucken, lautet diese nun:
"tomatoes + carrots"
Wenn Sie das Wort Kartoffeln ganz aus dem Stich 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:
Beispiel:
string = string.replacingOccurrences(of: "potatoes", with: "dog\'s toys", options: NSString.CompareOptions.literal, range: nil)
Ausgabe:
"dog's toys + carrots"
quelle
Sie haben text2 als Option instanziiert (z. B. var text2: String?). Aus diesem Grund erhalten Sie in Ihrer Zeichenfolge Optional ("5"). das wegnehmen? und ersetzen durch:
var text2: String = ""
quelle
Wenn Sie die Ausgabe erhalten,
Optional(5)
wenn Sie versuchen, den Wert von5
in einem optionalen Int oder String zu drucken , sollten Sie zuerst den Wert auspacken:if let value = text { print(value) }
Jetzt haben Sie den Wert ohne die Zeichenfolge "Optional", die Swift hinzufügt, wenn der Wert zuvor nicht entpackt wurde.
quelle