java去除文章中的敏感詞
做博客或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)); }
}</pre>
輸出為:
__________________________________
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>