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

时间:2013-09-03 18:21:02

标签: java string replaceall

所以删除我的字符串中的所有空格。我做了一个由

组成的方法
message = message.replaceAll("\\s", "");

我想知道是否有一个命令要删除和特殊字符,如逗号或句点,只是让它成为一个字符串。我是否必须逐个删除它们,或者是否有一段我遗漏的代码?

3 个答案:

答案 0 :(得分:14)

你可以走另一条路。使用否定的字符类替换非字字符的所有内容:

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

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

它们都会替换[a-zA-Z0-9_]以外的字符。如果您也想替换下划线,请使用:

[\\W_]

答案 1 :(得分:10)

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

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

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

答案 2 :(得分:1)

\ w是相同的[A-Za-z0-9_],它将删除所有空格等(但不是_)。白名单更安全,而不是删除单个字符。