Scala: Replace newline, tab and return sequences from string

randombits picture randombits · Jul 11, 2013 · Viewed 24.1k times · Source

I have a string of HTML that I'm copy pasting into a String object that looks something like the following:

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

The problem here is, when I display this string as JSON within the context of a web browser, the output displays literal \n and \t characters to the tune of something like this:

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

Is it possible to perhaps strip all of these escaped sequences from my strings output in Scala?

Answer

Rex Kerr picture Rex Kerr · Jul 11, 2013

You could just

s.filter(_ >= ' ')

to throw away all control characters.

If you want to omit extra whitespace at the start/end of lines also, you can instead

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