使用原理:
先把资源文件中的敏感词加读出来拼接成正则表达式,然后放到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标准型)。呵呵,给大家借鉴以下。"这说明了开发者是个人作品,并且他/她认为尽管功能可能不是非常全面,但足以满足基本的计算需求。它模仿了Windows标准...
JDBC(Java Database Connectivity)是Java与数据库交互的标准接口,允许Java程序连接并操作各种类型的数据库,如MySQL。在"今天吃点啥"这个Web应用中,JDBC可能被用来建立与MySQL数据库的连接,执行SQL查询来获取菜...
基本实现记事本的功能,以前随手写的,凑合着用,对于做Java毕业设计是不错的,呵呵 基本实现记事本的功能,以前随手写的,凑合着用,对于做Java毕业设计是不错的,呵呵 基本实现记事本的功能,以前随手写的,凑合着...
图片合成的PDF文档,个人感觉凑合。 《java网络编程》第三版会为你介绍java网络api的最新特性。本书讨论了jdk 1.4和1.5(现在已命名为j2se 5)中所做的所有修改和增补。本书内容全面,涵盖了从网络基础知识到远程...
java数据结构与算法,影印版,凑合看吧.pdf
java聊天程序源码,Java网络相关实例,通过4444端口来实现聊天监听,由经天网络编写...程序可显示聊天室中一共几人、几人离去,谁和谁在聊天,界面方面做的不是很漂亮,有些粗糙了,重点表现代码,喜欢Java的凑合哦。
本来是要求写转正的述职报告的,后来结合网上的写着写着就变成了转正申请,不管了,凑合着用.里面的述职报告和转正申请都差不多.
这是我们这学期期末网络编程的作业,老师要求我们做的课程作业。...UI界面背景图片是我用光影魔术手ps的,感觉还可以凑合着看。 压缩包里面有个可运行的jar格式的文件,你可以运行试试。我编完后,没有发现BUG
作者: 强锋科技 那静 出版社:清华大学出版社 这是一本读者期待已久的书! 这是一本全面、深入讲解Eclipse SWT/JFace核心开发及应用的书!...一好心人用相机拍的,我在百度文库下载19份后归到一起(凑合着看吧)
`Jchart`是一个自定义封装的Java图表库,它可能是为了满足特定项目需求而开发的,虽然描述中提到“凑合事”,但这也体现了开发者在面对问题时的创新精神和解决问题的能力。下面我们将深入探讨`Jchart`及其相关的Java...
如下图(图片拼接左侧菜单可能模糊或重影,凑合看): 左侧为菜单,菜单分为两级,一级表示模块,二级表示接口信息,一级菜单就是你定义的模块名称,二级菜单是对外接口的方法名,如果你的方法上有注释,这里会自动...
凑合着用吧。。。。。
kis9key 到8月份...凑合用吧~~~卡巴的KEY免费的貌似还很少了
"后面实验部分 凑合看 软件翻译的 前面 质量还是可以的"表明翻译质量前高后低,实验部分可能需要更深入理解或人工校对。"加博客链接"可能提供了额外的解释或实践应用。 **Focal Self-Attention(焦点自注意力):**...
【标题】"简历模板(凑合着用吧)"所涉及的知识点主要集中在个人简历的制作上,这在求职过程中是非常重要的一环。一个简洁明了、内容丰富的简历能够有效地吸引招聘者的注意力,提高获得面试机会的概率。在这个标题中...
标题中的“VB做的钟表,外观还凑合”指的是使用Visual Basic(VB)编程语言创建的一个模拟钟表程序。这个程序可能是一个简单的GUI应用程序,它在窗口上显示时钟的小时、分钟和秒针,以模拟真实世界的时间流逝。VB是...
项目要求与网上搜的那些开发板的例程完全不在一个级别,也不是那些凑合性质的项目可以比拟的。 项目是企业级产品的要求开发的,能够让初学者了解真实的企业项目是怎么样的,增加工作经验 企业真实项目网上稀缺,完整...
这份名为"计算机系统结构"的PPT资料虽然被评价为"不是很好,凑合着用吧",但仍然能为我们提供一些基本的计算机体系结构知识。 1. **第1章:计算机系统概述** 这一章通常会介绍计算机系统的基本构成,包括中央处理...