从 Java 字符串中删除所有控制字符

2022-09-03 03:37:21

我有一个来自UI的字符串,其中包含控制字符,如换行符和carrage返回。

我想做这样的事情:

String input = uiString.replaceAll(<regex for all control characters> , "")

当然,这以前已经做过了!?


答案 1

使用番石榴,可能比使用完整的正则表达式引擎更有效,当然也更具可读性......

return CharMatcher.JAVA_ISO_CONTROL.removeFrom(string);

或者,只使用正则表达式,尽管不那么可读或有效...

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

答案 2

像这样的东西应该可以解决问题:

String newString = oldString.replaceAll("[\u0000-\u001f]", "");