为了去掉我的字符串中所有的空格,我使用了一个方法,它包括以下步骤:
message = message.replaceAll("\\s", "");
我在想是否有一个命令可以删除特殊字符,比如逗号或句号,并使其成为一个字符串。我需要一个个删除它们吗?还是我缺少了一段代码?
为了去掉我的字符串中所有的空格,我使用了一个方法,它包括以下步骤:
message = message.replaceAll("\\s", "");
你可以走另一条路。使用否定字符类,替换掉所有非单词字符:
message = message.replaceAll("[^\\w]", "");
message = message.replaceAll("\\W", "");
它们都可以替换除了 [a-zA-Z0-9_]
之外的字符。如果您想要替换下划线,请使用:
[\\W_]
与一些人声称的相反,\w
并不等同于[a-zA-Z0-9_]
。 \w
还包括所有语言(中文、阿拉伯语等)中属于字母或数字(和下划线)的所有字符。
考虑到您可能认为非拉丁字母/数字是“特殊”的,这将删除所有“非正常”的字符:
message = message.replaceAll("[^a-zA-Z0-9]", "");
\w是指[A-Za-z0-9_],它会去掉所有空格和其他字符(但不包括_)。更安全的做法是白名单允许的内容,而不是逐个删除字符。