2013-07-10 16 views
14

ho una stringa di codice HTML che sto copiare incollare in un oggetto String che sembra qualcosa di simile al seguente:Scala: Sostituire nuova riga, scheda e tornare sequenze da stringa

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

Il problema qui è, quando visualizzo questa stringa come JSON nel contesto di un browser web, gli output visualizza letterali \n e \t caratteri per la somma di qualcosa di simile:

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

e 'possibile mettere a nudo forse tutte queste sequenze fuggito dal mio stringhe in uscita Scala?

risposta

39

Si potrebbe semplicemente

s.filter(_ >= ' ') 

di buttare via tutti i caratteri di controllo.

Se si desidera omettere gli spazi bianchi in più a inizio/fine delle linee Inoltre, è possibile invece

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

Questo è davvero grande. Come mai il filtro non ha eliminato tutti gli spazi bianchi e solo i caratteri di controllo? – randombits

+2

@randombits - Perché ho filtrato (in) tutto sopra _o uguale a_ spazio, e i caratteri di controllo hanno tutti un valore inferiore rispetto allo spazio. –

+0

Grazie, Rex. È roba eccellente. – randombits

Problemi correlati