JAVA特殊字符过滤方法

发布网友 发布时间:2022-04-25 14:47

我来回答

2个回答

热心网友 时间:2023-10-09 20:32

public static String StringFilter(String str) throws PatternSyntaxException {
// 只允许字母和数字
// String regEx = "[^a-zA-Z0-9]";
// 清除掉所有特殊字符
String regEx="[`~!@#$%^&*()+=|{}':;',\\[\\].<>/?~!@#¥%……&*()——+|{}【】‘;:”“’。,、?]";
Pattern p = Pattern.compile(regEx);
Matcher m = p.matcher(str);
return m.replaceAll("").trim();
}

热心网友 时间:2023-10-09 20:32

这个问题入手点是遍历字符串,逐一匹配非法字符。只是,非法字符很多的时候,资源消耗就很大。
怎么办呢?反过来想,扣除这些非法字符后,还剩下什么字符?应该是ASC码和中文字符的子集了。所以,过滤条件是:保留特定ASC码(不需要过滤的ASC码),和中文字符。完成。追问的确资源消耗这是个问题...可是这个也没法避免 ....因为有这个需求,只能说尽量去优化一下..
扣除这些非法字符后,还剩下什么字符? 还剩下我需要的汉字,但是有可能有的时候也会需要出现符号,只要这些符号不是出现在非法符号里面就没什么..
保留特定ASC码(不需要过滤的ASC码),和中文字符。完成? 能写例子不
以前没有这么做过.. 如果能提供个例子,就非常感谢了

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com