Java 如何检查字符串的每个字符是否在白名单中?
我有一个允许出现在字符串中的字符白名单。在白名单上找不到的任何字符都应替换为空格(“”)。我如何在Java中实现这一点?下面是白名单上的角色Java 如何检查字符串的每个字符是否在白名单中?,java,string,replace,Java,String,Replace,我有一个允许出现在字符串中的字符白名单。在白名单上找不到的任何字符都应替换为空格(“”)。我如何在Java中实现这一点?下面是白名单上的角色 A through Z, a through z, 0 through 9, -,!,@,#,$,_ 我想这就是你要找的 String blacklist = "[^A-Za-z0-9-!@#$_]"; //negation of whitelisted characters str = str.replaceAll(blacklist, " ");
A through Z,
a through z,
0 through 9,
-,!,@,#,$,_
我想这就是你要找的
String blacklist = "[^A-Za-z0-9-!@#$_]"; //negation of whitelisted characters
str = str.replaceAll(blacklist, " "); //string to be cleaned up
正则表达式[^A-Za-z0-9-!@#$\uz]
针对的是不是字母、数字或任何特殊字符的每个字符-@#$_代码>(请注意后面的“^”)
如果只想检查字符串中的每个字符是否都在白名单中,只需使用:
如果result
等于false
,则表示str
的所有字符都存在于白名单中(没有一个被列入黑名单)
String blacklist = "[^A-Za-z0-9-!@#$_]";
boolean result = str.matches(blacklist);