2017-03-28 5 views
2

Ich habe eine Zeichenfolge wie folgt:Entfernen Zeilenumbrüche aus string

var aString = "This is a string \n\n This is the second line of the string\n\n" 

, die in einem Textview wie so aussieht:

This is a string 

This is the second line of the string 


// 2 extra lines of unnecessary white space 

Aber ich will es so aussehen:

This is a string 
This is the second line of the string 

Ich möchte alle "\ n" vom Ende der Zeichenfolge entfernen und entfernen \ n, wo es sich wiederholt, so dass es keinen Leerraum in der Mitte gibt.

ideal, ich bin das Endergebnis erraten sollte dies sein:

var aString = "This is a string \n This is the second line of the string" 
+0

Was haben Sie versucht? Haben Sie das '/ n/n' mit'/n' ersetzt? Http://stackoverflow.com/questions/24200888/any-way-to-replace-characters-on-swift-string oder sogar '/ n/n 'mit'/n', um den zusätzlichen Speicherplatz zu entfernen. Obwohl das ein wenig vereinfacht sein könnte – Flexicoder

+1

http://stackoverflow.com/questions/28957940/remove-all-line-breaks-at-the-beginn-of-a-string-in-swift –

+0

Sind Sie sicher, dass es nicht ist \ n'? – Sulthan

Antwort

3

was ist das?

var aString = "This is a string \n\n\n This is the second line of the string\n\n" 
// trim the string 
aString.trimmingCharacters(in: CharacterSet.newlines) 
// replace occurences within the string 
while let rangeToReplace = aString.range(of: "\n\n") { 
    aString.replaceSubrange(rangeToReplace, with: "\n") 
} 
1

Die Grundidee für Ihren Code würde alle Doppel ersetzen/n mit einem einzigen/n.

var aString = "This is my string" 
var newString = aString.replacingOccurrences(of: "/n/n", with: "/n") 
+0

Ich wollte das gleiche sagen, aber Sie haben mich dazu geschlagen. –

+0

Problem ist, '\ n' sitzt immer noch am Ende der Zeichenfolge, wenn dort ein '\ n 'ist, so bekomme ich eine extra leere Zeile am Ende der Zeichenfolge bei der Anzeige in der Textansicht – luke

+1

Ich habe mich vertippt. Ersetzen Sie die/n Teile meines Codes durch \ n. Es sollte funktionieren, auf keinen Fall nicht. – Hienz

0

Versuchen Sie, diese

var aString = "This is a string \n\n This is the second line of the string\n\n" 

let components = aString.components(separatedBy: "\n\n").filter { $0 != "" } 
print(components.joined(separator: "\n")) 

// prints expected output with a single line separator 
Verwandte Themen