java 过滤器对敏感词过滤

转载 2013年12月06日 10:31:14

一下实现对敏感词,禁忌词的过滤.
两个个文件words.properties和KeyWordFilter.java;
1、words.properties文件是个文本文件;内容如下:
敏感词一
敏感词二
敏感词三

2、KeyWordFilter.java是个java文件内容如下:
import java.io.IOException;
import java.io.InputStream;
import java.text.SimpleDateFormat;
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);
   Enumeration enu = pro.propertyNames();
   patternBuf.append("(");
   while(enu.hasMoreElements())
   {
    patternBuf.append((String)enu.nextElement()+"|");
   }
   patternBuf.deleteCharAt(patternBuf.length()-1);
   patternBuf.append(")");
 
//unix换成UTF-8
   //pattern = Pattern.compile(new String(patternBuf.toString().getBytes("ISO-8859-1"), "UTF-8"));
//win下换成gb2312
   pattern = Pattern.compile(new String(patternBuf.toString().getBytes("ISO-8859-1"), "gb2312"));
  }
  catch(IOException ioEx)
  {
   ioEx.printStackTrace();
  }
}
private static String doFilter(String str)
{
  Matcher m = pattern.matcher(str);
  str = m.replaceAll("");
  return str;
}

public static void main(String[] args)
{
  String str = "国敏感词一院学位办就敏感词三的报道表示敏感词二";
  System.out.println("str:"+str);
  initPattern();
  Date d1 = new Date();
  SimpleDateFormat formatter = new SimpleDateFormat("EEE, d MMM yyyy HH:mm:ss:SSS Z");
  System.out.println("start:"+formatter.format(d1));
  System.out.println("共"+str.length()+"个字符,查到" + KeyWordFilter.doFilter(str));
  Date d2 = new Date();
  System.out.println("end:"+formatter.format(d2));
}

}
输出为:
__________________________________
str:国敏感词一院学位办就敏感词三的报道表示敏感词二
start:星期二, 24 三月 2009 14:50:17:171 +0800
共23个字符,查到国院学位办就的报道表示
end:星期二, 24 三月 2009 14:50:17:531 +0800

JavaWeb-过滤器Filter学习(四)敏感词过滤实例

通过Filter来实现留言板的敏感词过滤…思路很简单,我们这里的敏感词是直接先放进去的,实际项目中,肯定是存在数据库中。在Filter 过滤器中,我们先拿到用户提交的留言,如果出现了敏感词,我们就用*...
  • qq_26525215
  • qq_26525215
  • 2016年08月18日 17:29
  • 7472

敏感词过滤工具类

此工具类通过hashmap构建敏感词树,利用DFA算法进行处理,共提供五个工具方法,方法如下:  * void   SensiWordUtil.refreshSensiMap()  刷新、重新生成敏感...
  • myfmyfmyfmyf
  • myfmyfmyfmyf
  • 2016年12月23日 09:52
  • 1274

response中 ,通过过滤器 实现敏感词过滤

本文是一个不完善的例子,是在请求返回时增加一个敏感词过滤器, 之所以说不完善是因为在测试时发现正常的,结构性的部分被过滤掉了, 请将下面的文字比较,会发现, ``被替换成了下面的。 `...
  • zooop
  • zooop
  • 2015年08月04日 10:54
  • 1500

jquery内容过滤器

一 介绍 内容过滤器就是通过DOM元素包含的文本内容以及是否含有匹配的元素进行筛选。内容过滤器共包括:contains(text)、:empty、:has(selector)和:parent4种,如...
  • chengqiuming
  • chengqiuming
  • 2017年04月12日 10:52
  • 228

【过滤器】(4)过滤器的应用案例:留言板敏感词过滤技术(包装模式)

一、包装设计模式1、对一个类的增强,一般采取三种方式(1)继承被增强的类,即实现一个子类。(2)使用动态代理处理需要增强的方法。(3)使用包装设计模式(Java中的IO基本上都是包装设计模式)2、以下...
  • qq_35415600
  • qq_35415600
  • 2017年08月07日 17:34
  • 307

使用过滤器实现敏感词的过滤

在web开发中,尤其是实现用户动态交互的开发中经常会用到“敏感词”过滤。 用来屏蔽敏感词…… 今天我也试着写了写,发现其实思路有很多。我只是写了其中的一种---通过解析XML文件来实现。 当然在...
  • jinzi12345678
  • jinzi12345678
  • 2011年11月29日 12:31
  • 5885

JS敏感词过滤

过滤敏感、不良词汇。本博客主要讲述两种方式过滤敏感词汇。
  • genius_yym
  • genius_yym
  • 2016年12月23日 10:18
  • 1313

asp.net敏感词过滤(二)

前台调用: Stopwatch sw = new Stopwatch();             sw.Start();                        clsFilter f...
  • ly1577592799
  • ly1577592799
  • 2011年04月21日 16:05
  • 2385

【面经笔记】Bloom过滤器处理大规模问题

Bloom过滤器处理大规模问题时的持久化,包括内存大小受限、磁盘换入换出问题 http://www.360doc.com/content/13/1226/18/15234639_340327658...
  • xiaxzhou
  • xiaxzhou
  • 2017年07月15日 21:03
  • 403

Java实现敏感词过滤 - IKAnalyzer中文分词工具

IKAnalyzer 是一个开源的,基于java语言开发的轻量级的中文分词工具包。官网: https://code.google.com/archive/p/ik-analyzer/本用例借助 IKA...
  • sinat_14982831
  • sinat_14982831
  • 2017年09月04日 11:58
  • 1765
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:java 过滤器对敏感词过滤
举报原因:
原因补充:

(最多只允许输入30个字)