资源简介
用java实现根据用户传进来的话语是否包含敏感词,如果包含敏感词用*来替代输出。
代码片段和文件信息
package com.chenssy.keyword;
import java.util.HashSet;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;
/**
* @Description: 敏感词过滤
* @Project:test
*/
public class SensitivewordFilter {
@SuppressWarnings(“rawtypes“)
private Map sensitiveWordMap = null;
public static int minMatchTYpe = 1; //最小匹配规则
public static int maxMatchType = 2; //最大匹配规则
/**
* 构造函数,初始化敏感词库
*/
public SensitivewordFilter(){
sensitiveWordMap = new SensitiveWordInit().initKeyWord();
}
/**
* 判断文字是否包含敏感字符
* @param txt 文字
* @param matchType 匹配规则 1:最小匹配规则,2:最大匹配规则
* @return 若包含返回true,否则返回false
* @version 1.0
*/
public boolean isContaintSensitiveWord(String txtint matchType){
boolean flag = false;
for(int i = 0 ; i < txt.length() ; i++){
int matchFlag = this.CheckSensitiveWord(txt i matchType); //判断是否包含敏感字符
if(matchFlag > 0){ //大于0存在,返回true
flag = true;
}
}
return flag;
}
/**
* 获取文字中的敏感词
* @param txt 文字
* @param matchType 匹配规则 1:最小匹配规则,2:最大匹配规则
* @return
* @version 1.0
*/
public Set getSensitiveWord(String txt int matchType){
Set sensitiveWordList = new HashSet();
for(int i = 0 ; i < txt.length() ; i++){
int length = CheckSensitiveWord(txt i matchType); //判断是否包含敏感字符
if(length > 0){ //存在加入list中
sensitiveWordList.add(txt.substring(i i+length));
i = i + length - 1; //减1的原因,是因为for会自增
}
}
return sensitiveWordList;
}
/**
* 替换敏感字字符
* @param txt
* @param matchType
* @param replaceChar 替换字符,默认*
* @version 1.0
*/
public String replaceSensitiveWord(String txtint matchTypeString replaceChar){
String resultTxt = txt;
Set set = getSensitiveWord(txt matchType); //获取所有的敏感词
Iterator iterator = set.iterator();
String word = null;
String replaceString = null;
while (iterator.hasNext()) {
word = iterator.next();
replaceString = getReplaceChars(replaceChar word.length());
resultTxt = resultTxt.replaceAll(word replaceString);
}
return resultTxt;
}
/**
* 获取替换字符串
* @param replaceChar
* @param length
* @return
* @version 1.0
*/
private String getReplaceChars(String replaceCharint length){
String resultReplace = replaceChar;
for(int i = 1 ; i < length ; i++){
resultReplace += replaceChar;
}
return resultReplace;
}
/**
* 检查文字中是否包含敏感字符,检查规则如下:
* @param txt
* @param beginIndex
* @param matchType
* @return,如果存在,则返回敏感词字符的长度,不存在返回0
* @version 1.0
*/
@SuppressWarnings({ “rawtypes“})
public int CheckSensitiveWord(String txtint beginIndexint matchType){
boolean flag = false; //敏感词结束标识位:用于敏感词只有1位的情况
int matchFlag = 0; //匹配标识数默认为0
char word = 0;
Map nowMap = sensitiveWordMap;
for(int i = beginIndex; i < txt.length() ; i++){
word = txt.charAt(i);
nowMap = (Map) nowMap.ge
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2018-08-29 21:15 敏感词过滤\
目录 0 2018-08-29 21:15 敏感词过滤\.git\
文件 23 2018-08-29 21:15 敏感词过滤\.git\HEAD
文件 130 2018-08-29 21:15 敏感词过滤\.git\config
文件 73 2018-08-29 21:15 敏感词过滤\.git\desc
目录 0 2018-08-29 21:15 敏感词过滤\.git\hooks\
文件 478 2018-08-29 21:15 敏感词过滤\.git\hooks\applypatch-msg.sample
文件 896 2018-08-29 21:15 敏感词过滤\.git\hooks\commit-msg.sample
文件 189 2018-08-29 21:15 敏感词过滤\.git\hooks\post-update.sample
文件 424 2018-08-29 21:15 敏感词过滤\.git\hooks\pre-applypatch.sample
文件 1642 2018-08-29 21:15 敏感词过滤\.git\hooks\pre-commit.sample
文件 1348 2018-08-29 21:15 敏感词过滤\.git\hooks\pre-push.sample
文件 4951 2018-08-29 21:15 敏感词过滤\.git\hooks\pre-reba
文件 1239 2018-08-29 21:15 敏感词过滤\.git\hooks\prepare-commit-msg.sample
文件 3611 2018-08-29 21:15 敏感词过滤\.git\hooks\update.sample
目录 0 2018-08-29 21:15 敏感词过滤\.git\info\
文件 240 2018-08-29 21:15 敏感词过滤\.git\info\exclude
目录 0 2018-08-29 21:15 敏感词过滤\.git\ob
目录 0 2018-08-29 21:19 敏感词过滤\.git\ob
目录 0 2018-08-29 21:19 敏感词过滤\.git\ob
目录 0 2018-08-29 21:15 敏感词过滤\.git\refs\
目录 0 2018-08-29 21:19 敏感词过滤\.git\refs\heads\
目录 0 2018-08-29 21:19 敏感词过滤\.git\refs\tags\
文件 3745 2018-08-29 21:05 敏感词过滤\SensitiveWordInit.java
文件 4794 2018-08-29 21:04 敏感词过滤\SensitivewordFilter.java
相关资源
- mysql数据处理,java用户登录处理
- 法律咨询信息系统(java+jsp+sqlserver)
- Java快速开发平台源码(renren-fast)
- 锐聘学院QST青软JavaWeb十二个打包
- 3.3.6微信支付JAVA版demo
- javaweb网上购物系统源码(附数据库脚
- javaweb校园宿舍系统(附数据库脚本)
- JavaWeb书城项目(附数据库脚本)
- 基于JAVA_JSP电子书系统(源码+数据库
- Java网络编程知识点总结.xmind
- 一站式Java网络编程 BIO-NIO-AIO资料源码
- jsp讲解
- 基于SSH框架的JavaWeb项目—人员信息管
- javaweb实现的邮件收发系统(附数据库
- Java 仿QQ(附客户端以及服务端源码)
- Java TCP IP Socket
- java定时发送邮件(基于quartz)
- Java Swing开发的《星际争霸》游戏
- java+数据库商品交易管理系统(附数据
- 使用java语言编译一个计算器
- java swing工资管理系统(源码+数据库
- JAVALibrary
- 微信企业号回调模式Java版
- 顺丰丰桥接口开发详细教程源码含下
- Java博客概要设计文档
- 药品进销存管理系统(论文范文_JSP
- 奖学金管理系统java+jsp+mysql
- 毕设参考——基于java酒店管理
- Java写的一个简单的字体更改程序
- java8学习教程之lambda表达式的使用方法
评论
共有 条评论