Ich suche nach einer Möglichkeit, Zeichen in einem Swift String
zu ersetzen.
Beispiel: "Das ist mein String"
Ich würde gerne " " durch "+" ersetzen, um "Das+ist+mein+String" zu erhalten.
Wie kann ich das erreichen?
Ich suche nach einer Möglichkeit, Zeichen in einem Swift String
zu ersetzen.
Beispiel: "Das ist mein String"
Ich würde gerne " " durch "+" ersetzen, um "Das+ist+mein+String" zu erhalten.
Wie kann ich das erreichen?
Diese Antwort wurde für Swift 4 & 5 aktualisiert. Wenn Sie immer noch Swift 1, 2 oder 3 verwenden, sehen Sie sich die Änderungshistorie an.
Sie haben ein paar Möglichkeiten. Sie können wie von @jaumard vorgeschlagen vorgehen und replacingOccurrences()
verwenden
let aString = "Das ist mein Text"
let newString = aString.replacingOccurrences(of: " ", with: "+", options: .literal, range: nil)
Und wie von @cprcrack unten bemerkt wurde, sind die options
- und range
-Parameter optional. Wenn Sie also keine Zeichenfolgenvergleichsoptionen angeben oder einen Bereich angeben möchten, in dem die Ersetzung erfolgen soll, benötigen Sie nur Folgendes.
let aString = "Das ist mein Text"
let newString = aString.replacingOccurrences(of: " ", with: "+")
Oder, wenn die Daten in einem bestimmten Format wie diesem vorliegen, bei dem Sie nur Trennzeichen ersetzen, können Sie components()
verwenden, um die Zeichenfolge in ein Array aufzuteilen, und dann können Sie die join()
-Funktion verwenden, um sie mit einem angegebenen Trennzeichen wieder zusammenzusetzen.
let toArray = aString.components(separatedBy: " ")
let backToString = toArray.joined(separator: "+")
Oder wenn Sie nach einer eleganteren Lösung suchen, die keine API von NSString verwendet, könnten Sie dies verwenden.
let aString = "Einige Suchbegriffe"
let replaced = String(aString.map {
$0 == " " ? "+" : $0
})
Sie können dies verwenden:
let s = "Das ist mein String"
let modified = s.replace(" ", withString:"+")
Wenn Sie diese Erweiterungsmethode irgendwo in Ihrem Code hinzufügen:
extension String
{
func replace(target: String, withString: String) -> String
{
return self.stringByReplacingOccurrencesOfString(target, withString: withString, options: NSStringCompareOptions.LiteralSearch, range: nil)
}
}
Swift 3:
extension String
{
func replace(target: String, withString: String) -> String
{
return self.replacingOccurrences(of: target, with: withString, options: NSString.CompareOptions.literal, range: nil)
}
}
Swift 3, Swift 4, Swift 5 Lösung
let exampleString = "Beispielstring"
//Lösung wie oben vorgeschlagen in Swift 3.0
let stringToArray = exampleString.components(separatedBy: " ")
let stringFromArray = stringToArray.joined(separator: "+")
//Die schickste Lösung in Swift
let swiftyString = exampleString.replacingOccurrences(of: " ", with: "+")
CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.