6

所以要删除我的字符串中的所有空格。我做了一个由以下组成的方法

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

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

4

3 回答 3

18

你可以反过来。使用否定字符类替换不是单词字符的所有内容:

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

或者

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

它们都将替换除[a-zA-Z0-9_]. 如果您也想替换下划线,请使用:

[\\W_]
于 2013-09-03T18:22:36.940 回答
13

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

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

message = message.replaceAll("[^a-zA-Z0-9]", "");
于 2013-09-03T18:42:27.343 回答
1

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

于 2013-09-03T18:26:35.987 回答