所以删除我的字符串中的所有空格。我做了一个由
组成的方法message = message.replaceAll("\\s", "");
我想知道是否有一个命令要删除和特殊字符,如逗号或句点,只是让它成为一个字符串。我是否必须逐个删除它们,或者是否有一段我遗漏的代码?
答案 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_],它将删除所有空格等(但不是_)。白名单更安全,而不是删除单个字符。