Java 如何替换字符串中的所有特殊字符?

Java 如何替换字符串中的所有特殊字符?,java,string,replaceall,Java,String,Replaceall,所以要删除字符串中的所有空格。我做了一个方法,包括 message = message.replaceAll("\\s", ""); 我想知道是否有一个命令可以删除特殊字符,比如逗号或句点,而只是让它成为一个字符串。我必须一个接一个地删除它们,还是缺少一段代码?你可以反过来。使用否定字符类替换所有非word字符: message = message.replaceAll("[^\\w]", ""); 或 它们都将替换[a-zA-Z0-9.]之外的字符。如果也要替换下划线,请使用: [\\W_

所以要删除字符串中的所有空格。我做了一个方法,包括

message = message.replaceAll("\\s", "");

我想知道是否有一个命令可以删除特殊字符,比如逗号或句点,而只是让它成为一个字符串。我必须一个接一个地删除它们,还是缺少一段代码?

你可以反过来。使用否定字符类替换所有非word字符:

message = message.replaceAll("[^\\w]", "");

它们都将替换
[a-zA-Z0-9.]
之外的字符。如果也要替换下划线,请使用:

[\\W_]

\w与[A-Za-z0-9_]相同,它将去除所有空间等(但不是u)。将允许的内容列入白名单而不是删除单个字符要安全得多。

与一些人可能声称的相反,
\w
[a-zA-Z0-9.]
不同
\w
还包括来自所有语言(中文、阿拉伯语等)的字母或数字(以及下划线)的所有字符

<> P>考虑到你可能认为非拉丁字母/数字是“特殊”的,这将删除所有“非正常”字符:

message = message.replaceAll("[^a-zA-Z0-9]", "");

这可能不是一个完美的重复例子,但这个问题已经被问了几十次了。
message = message.replaceAll("[^a-zA-Z0-9]", "");