代码语言
.
CSharp
.
JS
Java
Asp.Net
C
MSSQL
PHP
Css
PLSQL
Python
Shell
EBS
ASP
Perl
ObjC
VB.Net
VBS
MYSQL
GO
Delphi
AS
DB2
Domino
Rails
ActionScript
Scala
代码分类
文件
系统
字符串
数据库
网络相关
图形/GUI
多媒体
算法
游戏
Jquery
Extjs
Android
HTML5
菜单
网页交互
WinForm
控件
企业应用
安全与加密
脚本/批处理
开放平台
其它
【
Java
】
敏感字符串处理工具类
作者:
刺猬拥抱
/ 发布于
2018/4/24
/
790
敏感字符的处理,性能非常好,采用文件的方式,可通过代码增加敏感词等强大的功能依赖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("傻逼"); } }
试试其它关键字
同语言下
.
List 切割成几份 工具类
.
一行一行读取txt的内容
.
Java PDF转换成图片并输出给前台展示
.
java 多线程框架
.
double类型如果小数点后为零则显示整数否则保留两位小
.
将图片转换为Base64字符串公共类抽取
.
sqlParser 处理SQL(增删改查) 替换schema 用于多租户
.
JAVA 月份中的第几周处理 1-7属于第一周 依次类推 29-
.
java计算两个经纬度之间的距离
.
输入时间参数计算年龄
可能有用的
.
List 切割成几份 工具类
.
一行一行读取txt的内容
.
Java PDF转换成图片并输出给前台展示
.
java 多线程框架
.
double类型如果小数点后为零则显示整数否则保留两位小
.
将图片转换为Base64字符串公共类抽取
.
sqlParser 处理SQL(增删改查) 替换schema 用于多租户
.
JAVA 月份中的第几周处理 1-7属于第一周 依次类推 29-
.
java计算两个经纬度之间的距离
.
输入时间参数计算年龄
刺猬拥抱
贡献的其它代码
(
14
)
.
如何获取视频的总时长
.
敏感字符串处理工具类
.
字符串字典序排序
.
实现文件夹及文件压缩,并实现下载(二)
.
DataTable转Json Json转DataTable
.
google suggest 下拉菜单(asp.net版本)
.
在SQL2008查找某数据库中的列是否存在某个值
.
WebApiClient
.
json内查询
.
repeater 当前行号
Copyright © 2004 - 2024 dezai.cn. All Rights Reserved
站长博客
粤ICP备13059550号-3