场景:
在实际业务中,常常会遇到需要把某个字符串中的特殊符号全部去掉,只保留数字、大小写字母、汉字等
1、解决案例代码
/**
* <p>去掉字符串中的杂质(特殊符号)</p>
* <p>只保留数字、大小写字母和汉字</p>
*/
public static String impurityStr(String str) {
if (StrUtil.isBlank(str)) {
return null;
}
return str
.chars()
.filter(Character::isLetterOrDigit)
.collect(StringBuilder::new, StringBuilder::appendCodePoint, StringBuilder::append)
.toString();
}
2、验证
String noHaveImpurityStr = CommonUtil.impurityStr("~`我是!@#$%^&*()_+-=,中./'文;*这是数字、0123456789 | 字母.aABbcd·");
System.out.println("去除后结果:" + noHaveImpurityStr);
结果输出:
去除后结果:我是中文这是数字0123456789字母aABbcd
小结:
(1)从结果输出可以看到,字符串中几乎包含了所有特殊符号,最后都能去除干净,只保留了数字、大小写字母、汉字