2013-07-10 10 views
14

ich eine Reihe von HTML habe, dass ich das Einfügen in ein String-Objekt kopieren, das in etwa wie folgt aussieht: hierScala: Ersetzen Newline Tab und Rück Sequenzen aus String

val s = """<body> 
    <p>This is a test</p> <p>This is a test 2</p> 
</body""" 

Das Problem ist, wenn ich zeige diese Zeichenfolge als JSON im Rahmen eines Web-Browsers, die Ausgabe zeigt wörtliche \n und \t Zeichen in Höhe von etwas wie folgt aus:

"<body>\n <p>This is a test</p>\t <p>This is a test 2</p>\n</body>" 

Ist es möglich, vielleicht abzustreifen alle diese entkam Sequenzen aus meinem Strings ausgegeben in Scala?

Antwort

39

Sie könnten nur

s.filter(_ >= ' ') 

wegzuwerfen alle Steuerzeichen.

Wenn Sie auch zusätzliche Leerzeichen am Anfang/Ende der Linien verzichten möchten, können Sie stattdessen

s.split('\n').map(_.trim.filter(_ >= ' ')).mkString 
+0

Das ist wirklich toll. Wie kommt es, dass der Filter nicht alle Leerräume und nur die Steuerzeichen loswird? – randombits

+2

@randombits - Weil ich alles über _oder gleich_Raum gefiltert (in) gefiltert habe und die Steuerzeichen alle einen niedrigeren Wert als das Leerzeichen haben. –

+0

Danke Rex. Das ist ausgezeichnetes Zeug. – randombits