Title says it all.  Here is some example code.

    String test = '\n\n\n\n'; // All New Line characters

    System.debug( String.isBlank(test) ); // Returns true
    System.debug( String.isEmpty(test) ); // Returns false
    System.debug( test ); // Yields several empty lines in the debug output.

    test = test.stripHtmlTags();

    System.debug( String.isBlank(test) ); // Returns true
    System.debug( String.isEmpty(test) ); // Returns true
    System.debug( test ); // Yields no empty lines in the debug output

So I have a String which may or may not have HTML tags.  I want to remove the HTML tags and translate `<br>` to new lines `\n`, which stripHtmlTags does fine.  

My problem is that I may not always have HTML in my string, and when I do not have HTML I still want to keep my formatting.

stripHtmlTags also removed carriage return `\r` and tab space `\t` and possibly others I didn't check.


----------
**UPDATE**

This is the official response from Salesforce on the issue.  `stripHtmlTags()` is WAD and they are going to update the documentation to reflect the fact that it removes white-space characters as well as HTML tags.
    

> As per update from the team, we have revisited the implementation of
> the method, we have created a Doc Bug to make note of this in our
> documentation. The whitespace characters in the string get stripped. 
>     
> So, a Doc Bug has been logged for this to be included that whitespace kind of characters is not preserved when using this method.