2014-07-02 15 views
18

Hallo Leute ich Variable, welche Inhalte das Symbol oder Zeichen, weiß ich nicht, wie Sie in Englisch auf dieser „\“ sagen ... Wie alle ersetzen \ mit leeren Raum in meinem Variable?Swift - Ersetzen Zeichen in String

var content = theContent["content"] as String 
self.contentLabel.text = content.stringByReplacingOccurrencesOfString(<#target: String#>, withString: <#String#>, options: <#NSStringCompareOptions#>, range: <#Range<String.Index>?#>) 

Wie diese Räume oder meine sintax ist zu füllen falsch, wenn ich content.string verwenden ... und dann in #target verwende ich die gleiche Zeichenfolge? Jeder, der so schnell Swift gelernt? : D

Antwort

28

Verwenden Sie den folgenden

self.contentLabel.text = content.stringByReplacingOccurrencesOfString("\\", withString: " ", options: NSStringCompareOptions.LiteralSearch, range: nil) 
14

Wenn Sie dies in reinen Swift schreiben wollen, versuchen Sie:

self.contentLabel.text = Array(myString).reduce("") { $1 == "\\" ? $0 : "\($0)\($1)" } 

Dies ist eine kurze Hand Art des Schreibens:

Array(myString).reduce("", combine: { (inputString, character) -> String in 
    if character == "\\" { 
     return inputString 
    } else { 
     return "\(inputString)\(character)" 
    } 
}) 

Dies wandelt myString zu einer Array von Character s, dann verwendet die reduce Funktion, um sie wieder zusammenzufügen in eine String, aber ersetzen eine leere Zeichenfolge anstelle von Backslashes

+0

Was meinst du pure swift? Das sieht intensiv aus. Können Sie erklären, was in diesem Beispiel auf geht? – Aggressor

+3

Von * purem * Swift, meine ich, dass es keine Stiftung Klassen nicht verwendet (NSString, zum Beispiel) - aktualisierte meine Antwort für Klarheit –