`

java敏感字过滤

阅读更多
读取敏感字配置文件,或者数据库,使用正则表达式工具进行过滤
import java.io.IOException;
import java.io.InputStream;
import java.util.Enumeration;
import java.util.HashMap;
import java.util.Map;
import java.util.Properties;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class TestFilter {
private static Pattern pattern = null;

public static void initPattern() {
StringBuffer patternBuf = new StringBuffer();
try {
InputStream in = TestFilter.class.getClassLoader()
.getResourceAsStream("config.properties");
Properties properties = new Properties();
properties.load(in);

Enumeration<?> enu = properties.propertyNames();
while (enu.hasMoreElements()) {
patternBuf.append((String) enu.nextElement() + "|"); // 读取所有properties里的词,以
// | 分隔
System.out.println(new String(patternBuf.toString().getBytes(
"UTF-8"), "UTF-8"));
}

patternBuf.deleteCharAt(patternBuf.length() - 1);

// 默认下,properties文件读取编码: ISO8859-1
pattern = Pattern.compile(new String(patternBuf.toString()
.getBytes("UTF-8"), "UTF-8"));

} catch (IOException e) {
e.printStackTrace();
}
}

/**
* 是否包含敏感字
*
* @param str
* @return true:是 false:否
*/
public static boolean isContainsKeywords(String str) {
String temp = str;
try {
Matcher m = pattern.matcher(str);
str = m.replaceAll("*");
} catch (Exception e) {
e.printStackTrace();
}
return temp.equals(str) ? false : true;
}

/**
* 获取用*代替掉敏感字的字符串
*
* @param str
* @return
*/
private static Map<Boolean, String> doFilter(String str) {
Map<Boolean, String> test = new HashMap<Boolean, String>();
String origi = str;
Matcher m = pattern.matcher(str);
if (!m.find()) {
test.put(false, str);
} else {
m.replaceFirst("2");
int start = m.end() - m.group().length();
int end = m.end();
String startStsr = str.substring(0, start);
String endStr = str.substring(end, str.length());
str = startStsr + endStr;
int i = origi.length() - str.length();
String mm = "";
for (int k = 0; k < i; k++) {
mm += "*";
}
str = startStsr + mm + endStr;
test.put(true, str);
}
return test;
}

public static String filterKeywords(String str) {
Map<Boolean, String> test1 = new HashMap<Boolean, String>();
test1 = doFilter(str);
while (!test1.containsKey(false)) {
str = test1.get(true);
test1 = doFilter(str);
}
return str;
}

public static void main(String[] args) {
initPattern();
String string = "你他妈是个傻逼死贱人";
System.out.println("endString:" + filterKeywords(string));
}
分享到:
评论

相关推荐

    java 敏感字过滤/替换工具类

    该文件为.java文件,可以配合前面上传的敏感字收录文件进行使用的敏感字过滤工具;包括替换以及自定义过滤格式等

    springBoot-java敏感词语过滤类

    springBoot-java敏感词语过滤类

    javaWeb实现的过滤器敏感字过滤

    javaWeb实现的过滤器敏感字过滤,建一个敏感字符的文件,发送时实现过滤为***

    Java敏感词过滤Java敏感词过滤

    Java 敏感词汇过滤 Java 敏感词汇过滤Java 敏感词汇过滤Java 敏感词汇过滤

    java敏感词过滤

    论坛必不可少的敏感词过滤,java实现带敏感词库

    java利用DFA算法实现敏感词过滤功能

    在最近的开发中遇到了敏感词过滤,便去网上查阅了很多敏感词过滤的资料,在这里也和...下面这篇文章主要给大家介绍了关于java利用DFA算法实现敏感词过滤功能的相关资料,需要的朋友可以参考借鉴,下面来一起看看吧。

    java 图片颜色过滤小程序 源码

    自己做的图片过滤小程序,打开图片动态过滤颜色,过滤后可保存。附源码、附说明。本人系java新手,不当之处请多指教。

    andy-java敏感字符过滤.zip

    工具使用 java 实现,帮助我们解决常见的问题。6W+ 词库,且不断优化更新 基于 DFA 算法,性能较好 基于 fluent-api 实现,使用优雅简洁 支持敏感词的判断、返回、脱敏等常见操作 支持全角半角互换 支持英文大...

    Java敏感词过滤源码

    Java敏感词过滤源码。内附三个文件,敏感词(仅测试),两个类文件(用于功能实现)

    java实现敏感词过滤

    使用java 实现的可以对输入的String进行敏感词的过滤,返回敏感的词

    高效敏感词过滤JAVA实现(DFA算法) 5000字2ms

    高效敏感词过滤JAVA实现(DFA算法) 5000字2ms 节点 + 2进制标识(节省空间/提高查询效率) 附源码、注释,附带专业敏感词库(3396个敏感词) 看得上就拿去用,替换下一两处util方法、改个路径即可 不求什么,...

    java中DFA算法过滤敏感词

    DFA全称为:Deterministic Finite Automaton,即确定有穷自动机。其特征为:有一个有限状态集合和一些从一个状态通向另一个状态的边,每条边上标记有一个符号,其中一个状态是初态,某些状态是终态。...

    java过滤敏感词

    java过滤敏感词

    Java过滤字符串的方法

    Java过滤字符串的方法,Java过滤字符串的方法,过滤敏感信息

    java过滤器对所有参数去除前后空格

    对项目中的所有参数去除前后空格过滤,统一处理参数!可以基于此过滤器实现过滤跨站脚本攻击...敏感词汇过滤。实现原理为重写HttpServletRequestWrapper,获取参数的方法。include和 Forwarded 内部转发不在过滤之内。

    java使用DFA算法实现敏感词过滤

    java使用dfa算法实现敏感词过滤,此算法效率最高,附带了一个敏感词库,轻松搞定论坛网站的敏感词过滤问题。

    Java 敏感词过滤

    Java 网站敏感词过滤,里面自带词库,架包版本为2.0版本,本 Java工具包由北京师范大学2000级计算机系 张人杰 开发制作 基于多叉树的查找,我这是写了一个如何使用的例子,不懂QQ 248786960

    基于Java的UGC内容过滤架构源码:DFA与贝叶斯学习

    项目概述:基于Java语言开发的UGC内容过滤系统,运用DFA算法进行敏感词汇识别,并计划引入贝叶斯学习优化过滤效果。当前项目包含57个文件,其中Java源文件43个,以及其他配置和资源文件。项目正处于实验阶段,中文...

    java程序敏感词分析

    基于简单的java基础,制作的java敏感词程序,可用于学生提交作业

    敏感词汇过滤源代码

    利用java实现敏感词过滤的工具类,需要根据具体业务适当调整词库内容.非常实用.

Global site tag (gtag.js) - Google Analytics