591 Stimmen

Gibt es einen Weg, um Zeichen in einem Swift String zu ersetzen?

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?

15voto

Ramis Punkte 10640

Swift 5.5

Ich benutze diese Erweiterung:

extension String {

    func replaceCharacters(characters: String, toSeparator: String) -> String {
        let characterSet = CharacterSet(charactersIn: characters)
        let components = components(separatedBy: characterSet)
        let result = components.joined(separator: toSeparator)
        return result
    }

    func wipeCharacters(characters: String) -> String {
        return self.replaceCharacters(characters: characters, toSeparator: "")
    }
}

Verwendung:

"<34353 43434>".replaceCharacters(characters: "< >", toSeparator:"+") // +34353+43434+
"<34353 43434>".wipeCharacters(characters: "< >") // 3435343434

12voto

Manish Punkte 184

Swift 4:

let abc = "Hallo Welt"

let resultat = abc.replacingOccurrences(of: " ", with: "_", 
    options: NSString.CompareOptions.literal, range:nil)

print(resultat :\(resultat))

Ausgabe:

resultat : Hallo_Welt

8voto

Josh Adams Punkte 343

Eine Swift 3 Lösung im Stil von Sunkas:

extension String {
    mutating func replace(_ originalString:String, with newString:String) {
        self = self.replacingOccurrences(of: originalString, with: newString)
    }
}

Verwendung:

var string = "foo!"
string.replace("!", with: "?")
print(string)

Ausgabe:

foo?

7voto

SoftDesigner Punkte 5376

Swift 3 Lösung basierend auf Ramis' Antwort:

extension String {
    func withReplacedCharacters(_ characters: String, by separator: String) -> String {
        let characterSet = CharacterSet(charactersIn: characters)
        return components(separatedBy: characterSet).joined(separator: separator)
    }
}

Versucht, einen geeigneten Funktionsnamen gemäß der Swift 3 Namenskonvention zu finden.

7voto

Sunkas Punkte 9116

Eine Kategorie, die einen vorhandenen veränderbaren String verändert:

extension String
{
    mutating func replace(originalString:String, withString newString:String)
    {
        let replacedString = self.stringByReplacingOccurrencesOfString(originalString, withString: newString, options: nil, range: nil)
        self = replacedString
    }
}

Verwendung:

name.replace(" ", withString: "+")

CodeJaeger.com

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.

Powered by:

X