Java 敏感字符处理类,功能非常强大
来源:互联网 发布:天际网络网关登录器 编辑:程序博客网 时间:2024/06/08 15:28
敏感字符的处理,性能非常好,采用文件的方式,可通过代码增加敏感词等强大的功能
在开源中国的基础上增加部分方法
依赖apache的io 和lang包
package com.wiker;import java.io.File;import java.io.IOException;import java.util.ArrayList;import java.util.List;import org.apache.commons.io.FileUtils;import org.apache.commons.io.LineIterator;import org.apache.commons.lang.StringUtils;/** * 敏感字词处理类 * @author Wiker * @date 2010-1-11 下午10:51:30 */public class BadWord {private final static File wordfilter = new File("C:/wordfilter.txt");private static long lastModified = 0L;private static List<String> words = new ArrayList<String>();private static void checkReload(){if(wordfilter.lastModified() > lastModified){synchronized(BadWord.class){try{lastModified = wordfilter.lastModified();LineIterator lines = FileUtils.lineIterator(wordfilter, "utf-8");while(lines.hasNext()){String line = lines.nextLine();if(StringUtils.isNotBlank(line))words.add(StringUtils.trim(line).toLowerCase());}}catch(IOException e){e.printStackTrace();}}}}/** * 检查敏感字内容 * @param contents */public static String check(String ...contents) {if(!wordfilter.exists())return null;checkReload();for(String word : words){for(String content : contents)if(content!=null && content.indexOf(word) >= 0)return word;}return null;}/** * 检查字符串是否包含敏感词 * * @param content * @return */public static boolean isContain(String content) { if(!wordfilter.exists()) return false; checkReload(); for(String word : words){ if(content!=null && content.indexOf(word) >= 0) return true; } return false;}/** * 替换掉字符串中的敏感词 * * @param str 等待替换的字符串 * @param replaceChar 替换字符 * @return */public static String replace(String str,String replaceChar){ checkReload(); for(String word : words){ if(str.indexOf(word)>=0){ String reChar = ""; for(int i=0;i<word.length();i++){ reChar += replaceChar; } str = str.replaceAll(word, reChar); } } return str;}public static List<String> lists() {checkReload();return words;}/** * 添加敏感词 * * @param word * @throws IOException */public static void add(String word) throws IOException {word = word.toLowerCase();if(!words.contains(word)){words.add(word);FileUtils.writeLines(wordfilter, "UTF-8", words);lastModified = wordfilter.lastModified();}}/** * 删除敏感词 * * @param word * @throws IOException */public static void delete(String word) throws IOException {word = word.toLowerCase();words.remove(word);FileUtils.writeLines(wordfilter, "UTF-8", words);lastModified = wordfilter.lastModified();}public static void main(String[] args) throws Exception{ System.out.println(BadWord.replace("中国共产党钓鱼岛","*")); System.out.println(BadWord.isContain("岛")); BadWord.add("傻逼"); }}
- Java 敏感字符处理类,功能非常强大
- java web 敏感字符过滤器
- 功能非常强大的图片处理软件。graphicsmagick
- NotePad++ 功能非常强大啊 啊 啊
- HTML5线性图表iGrapher 功能非常强大
- 字串处理 expr在linux中是一个功能非常强大的命令。通过学习做一个小小的总结。
- java web过滤器实际应用(解决中文乱码 html标签转义功能 敏感字符过滤功能)
- Java敏感字符串处理工具类(河蟹专用)
- 一个功能非常强大的日历控件(可配置)
- SQLite.NET 一个小巧但是功能非常强大的数据库
- 容易忽视但功能能非常强大的javaAPI
- ABAP Debugger Scripting的功能(非常强大)
- 一款功能非常强大的截图软件(FastStone Capture)
- Android 下拉刷新,非常强大的下拉刷新功能
- c++ 强大的字符串流处理
- aspjpeg是一款非常强大的图片处理组件
- SqlServer数据库-日期转换处理函数,非常强大
- 功能非常全面的日期处理函数
- HashMap原理
- 使用CRectTracker类进行对象动态定位(二)
- Kernel 中的 GPIO 定义和控制
- udev
- ruby on rails安装无反应
- Java 敏感字符处理类,功能非常强大
- Android进阶2之Bitmap、Drawable、byte[]转换
- GCC编译过程(1)
- Java面试题总结
- DLL+ ActiveX控件+WEB页面调用例子
- GCC编译过程(2)
- 信号屏蔽字在多线程环境下的应用
- 解决android4.0 触摸屏分辨率映射不准
- getDimension,getDimensionPixelOffset和getDimensionPixelSize