使用原理:
先把资源文件中的敏感词加读出来拼接成正则表达式,然后放到Pattern中,用Matcher m = pattern.matcher(str); str = m.replaceAll("XXX");替换敏感词 返回替换后的内容
缺点:不能准确的输出敏感词的位置,和具体是哪个敏感词
KeyWordFilter.java
package com.gjw.action.copy;
import java.io.IOException;
import java.io.InputStream;
import java.io.UnsupportedEncodingException;
import java.util.Date;
import java.util.Enumeration;
import java.util.Properties;
import java.util.regex.Pattern;
import java.util.regex.Matcher;
public class KeyWordFilter
{
private static Pattern pattern = null;
// 从words.properties初始化正则表达式字符串
private static void initPattern()
{
StringBuffer patternBuf = new StringBuffer("");
try
{
InputStream in = KeyWordFilter.class.getClassLoader().getResourceAsStream("words.properties");
Properties pro = new Properties();
pro.load(in);
in.close();
Enumeration<String> enu = (Enumeration<String>) pro.propertyNames();
patternBuf.append("(");
while(enu.hasMoreElements())
{
try {
String dd = (String) enu.nextElement();
dd = new String(dd.getBytes("ISO8859-1"),"UTF-8");
patternBuf.append(dd+"|");
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
}
patternBuf.deleteCharAt(patternBuf.length()-1);
patternBuf.append(")");
pattern = Pattern.compile(patternBuf.toString());
}
catch(IOException ioEx)
{
ioEx.printStackTrace();
}
}
private static String doFilter(String str)
{
Matcher m = pattern.matcher(str);
str = m.replaceAll("XXX"); //敏感词替换
return str;
}
public static void main(String[] args)
{
String str = "需要过滤的内容";
initPattern();
Date d1 = new Date();
System.out.println("共"+str.length()+"个字符,查到" + KeyWordFilter.doFilter(str));
Date d2 = new Date();
float cost = d2.getTime()-d1.getTime();
System.out.println("总共花费:"+cost+"毫秒");
}
}
words.properties内容下游
分享到:
相关推荐
java的串口编程,完整的打电话功能。邮一定的参考作用,但是并不完整,凑合看看还是可以的。
自己做的JAVA计算器,功能还挺凑合,(模仿WINDOWS标准型)。呵呵,给大家借鉴以下。
基本实现记事本的功能,以前随手写的,凑合着用,对于做Java毕业设计是不错的,呵呵 基本实现记事本的功能,以前随手写的,凑合着用,对于做Java毕业设计是不错的,呵呵 基本实现记事本的功能,以前随手写的,凑合着...
英文版的,凑合着看吧,老师推荐的,应该不错
图片合成的PDF文档,个人感觉凑合。 《java网络编程》第三版会为你介绍java网络api的最新特性。本书讨论了jdk 1.4和1.5(现在已命名为j2se 5)中所做的所有修改和增补。本书内容全面,涵盖了从网络基础知识到远程...
java数据结构与算法,影印版,凑合看吧.pdf
java聊天程序源码,Java网络相关实例,通过4444端口来实现聊天监听,由经天网络编写...程序可显示聊天室中一共几人、几人离去,谁和谁在聊天,界面方面做的不是很漂亮,有些粗糙了,重点表现代码,喜欢Java的凑合哦。
本来是要求写转正的述职报告的,后来结合网上的写着写着就变成了转正申请,不管了,凑合着用.里面的述职报告和转正申请都差不多.
以前在网上找的,当时没有jar包,弄了好久之后终于能运行了。。。总体设计的比较简单。。。还凑合的一个校园论坛
个人改的,凑合吧,没啥难度,应付一下学校的课程设计
这是我们这学期期末网络编程的作业,老师要求我们做的课程作业。...UI界面背景图片是我用光影魔术手ps的,感觉还可以凑合着看。 压缩包里面有个可运行的jar格式的文件,你可以运行试试。我编完后,没有发现BUG
作者: 强锋科技 那静 出版社:清华大学出版社 这是一本读者期待已久的书! 这是一本全面、深入讲解Eclipse SWT/JFace核心开发及应用的书!...一好心人用相机拍的,我在百度文库下载19份后归到一起(凑合着看吧)
如下图(图片拼接左侧菜单可能模糊或重影,凑合看): 左侧为菜单,菜单分为两级,一级表示模块,二级表示接口信息,一级菜单就是你定义的模块名称,二级菜单是对外接口的方法名,如果你的方法上有注释,这里会自动...
凑合着用吧。。。。。
Web大作业主题:今天吃点啥。没啥功能,凑合用。
VB做的钟表,外观还凑合。学习VB的不妨自己动手也做一个。
kis9key 到8月份...凑合用吧~~~卡巴的KEY免费的貌似还很少了
简单的学生成绩管理,使用了几个swing组件,看上去还凑合。应付课设老师还是可以的,恩,应该相当的可以。
java chart, 自己封装的, 凑合事吧。留着以后有机会再完善。
本人初学者,做的还很不完善,基本功能是实现了,但是还有很多不足,特别是背景音乐那部分,大家凑合着看看啊~~~