现在的位置: 首页 > 综合 > 正文

过滤关键字[JAVA版]

2018年01月27日 ⁄ 综合 ⁄ 共 1107字 ⁄ 字号 评论关闭

KeywordFilter.java

import java.io.InputStream;
import java.util.Enumeration;
import java.util.Properties;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class KeywordFilter
{
	private static Pattern pattern = null;

	private static KeywordFilter filter = new KeywordFilter();

	public static KeywordFilter getInstance()
	{
		return (null == filter)?new KeywordFilter():filter;
	}

	private KeywordFilter()
	{
		init();
	}

	private void init()
	{
		StringBuilder stringBuilder = new StringBuilder();

		try
		{
			InputStream in = KeywordFilter.class
					.getResourceAsStream("keyword.properties");

			Properties pro = new Properties();
			
			//Thread.sleep(5000);

			pro.load(in);

			Enumeration<?> enu = pro.propertyNames();

			while (enu.hasMoreElements())
			{
				stringBuilder.append(enu.nextElement() + "|");
			}

			stringBuilder.deleteCharAt(stringBuilder.length() - 1);

			pattern = Pattern.compile(new String(stringBuilder.toString()
					.getBytes("ISO-8859-1"), "UTF-8"));

		} catch (Exception ex)
		{
			ex.printStackTrace();
		}
	}

	public String doFilter(String str)
	{
		Matcher m = pattern.matcher(str);

		str = m.replaceAll("***");

		return str;
	}

}

keyword.properties文件放在同一目录下,其内容就是要屏蔽的词语的集合,每个词语用“|”分割数据格式为: 

共产党|暴力|习近平

这里也可以使用数据库版本,在数据库里面设置方便客户可以维护![可以自己实现--简单]

抱歉!评论已关闭.