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

use*_*857 4 java string replaceall

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

message = message.replaceAll("\\s", "");
Run Code Online (Sandbox Code Playgroud)

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

Roh*_*ain 15

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

message = message.replaceAll("[^\\w]", "");
Run Code Online (Sandbox Code Playgroud)

要么

message = message.replaceAll("\\W", "");
Run Code Online (Sandbox Code Playgroud)

它们都将取代人物[a-zA-Z0-9_].如果你想替换下划线,那么使用:

[\\W_]
Run Code Online (Sandbox Code Playgroud)


Boh*_*ian 11

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

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

message = message.replaceAll("[^a-zA-Z0-9]", "");
Run Code Online (Sandbox Code Playgroud)