How to remove control characters from java string?

Mahmoud Saleh picture Mahmoud Saleh · Dec 25, 2012 · Viewed 38.9k times · Source

I have a string coming from UI that may contains control characters, and I want to remove all control characters except carriage returns, line feeds, and tabs.

Right now I can find two way to remove all control characters:

1- using guava:

return CharMatcher.JAVA_ISO_CONTROL.removeFrom(string);

2- using regex:

return string.replaceAll("\\p{Cntrl}", "");

Answer

Nidhish Krishnan picture Nidhish Krishnan · Dec 25, 2012

You can do something like this if you want to delete all characters in other or control uni-code category

System.out.println(
    "a\u0000b\u0007c\u008fd".replaceAll("\\p{Cc}", "")
); // abcd

Note : This actually removes (among others) '\u008f' Unicode character from the string, not the escaped form "%8F" string.

Courtesy : polygenelubricants ( Replace Unicode Control Characters )