java去除文章中的敏感词

jopen 11年前

做博客或bbs时;文章中经常会有些敏感词要去掉; 以下是一个java实现这个功能的小例题: 两个个文件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

来自:http://my.oschina.net/songhongxu/blog/184721
</span>