敏感词过滤java实现
来源:互联网 发布:端口号被占用解决方法 编辑:程序博客网 时间:2024/04/28 12:13
package com.iflytek.epdcloud.ercsvc.service;import java.util.HashMap;import java.util.HashSet;import java.util.Iterator;import java.util.Map;import java.util.Map.Entry;import java.util.Set;public class TestSensitiveWorld { Map sensitiveWordMap;public static void main(String[] args) {// TODO Auto-generated method stub Set<String> keyWordSet=new HashSet<String>(); keyWordSet.add("日本鬼子"); keyWordSet.add("日本人"); keyWordSet.add("毛泽东"); TestSensitiveWorld test=new TestSensitiveWorld(); test.addSensitiveWordToHashMap(keyWordSet); Iterator itr= test.sensitiveWordMap.entrySet().iterator(); while(itr.hasNext()) { Map.Entry entry=(Entry) itr.next(); System.out.println(entry.getKey()+":"+entry.getValue()); } String str="日本鬼子日本罕见还有日本人日本女孩毛泽毛泽江泽明毛泽东我的送给日本鬼子日本人日本毛泽东"; System.out.println("待检测语句字数:"+str.length()); System.out.println("matchFlag:" +test.checkSensitiveWord(str)); }public void addSensitiveWordToHashMap(Set<String> keyWordSet){sensitiveWordMap=new HashMap(keyWordSet.size());String key=null;Map nowMap=null;Map<String,String> newWordMap=null;//迭代keyWordSetIterator<String> iterator=keyWordSet.iterator();while(iterator.hasNext()){key=iterator.next();//关键字nowMap=sensitiveWordMap;for(int i=0;i<key.length();i++){char keyChar=key.charAt(i);Object wordMap=nowMap.get(keyChar);if(wordMap!=null){nowMap=(Map)wordMap;}else{newWordMap=new HashMap<String,String>();newWordMap.put("isEnd", "0");nowMap.put(keyChar, newWordMap);nowMap=newWordMap;}}nowMap.put("isEnd", "1");}}//验证敏感词public int checkSensitiveWord(String txt){ boolean flag=false;//标志符,如果进入子Map获取关键字为空,则返回头Map从新搜索,flag=true;否则直接搜索下个关键字 int matchFlag=0; //计量搜索到的敏感词个数 char word=0; Map nowMap=sensitiveWordMap; for(int i=0;i<txt.length();i++) { word=txt.charAt(i); nowMap=(Map)nowMap.get(word); if(nowMap!=null) { flag=true; if("1".equals(nowMap.get("isEnd"))) { matchFlag++; nowMap=null; } } if(nowMap==null) { nowMap=sensitiveWordMap; if(flag) { i--; flag=false; } } }return matchFlag;}}
0 0
- Java实现敏感词过滤
- Java实现敏感词过滤
- Java实现敏感词过滤
- Java实现敏感词过滤
- Java实现敏感词过滤
- Java实现敏感词过滤
- Java实现敏感词过滤
- Java实现敏感词过滤
- Java实现敏感词过滤
- Java实现敏感词过滤
- Java实现敏感词过滤
- 敏感词过滤java实现
- java实现敏感词过滤
- Java实现敏感词过滤
- Java实现敏感词过滤
- Java实现敏感词过滤
- Java实现敏感词过滤
- Java实现敏感词过滤
- HBase -ROOT-和.META.表结构(region定位原理)
- HashMap的工作原理 (1)
- 三种实现PHP伪静态页面的方法
- 创建IOS项目的配置
- LESS与Sass的差异及详解
- 敏感词过滤java实现
- easyui 表单元素验证
- JetBrains系列产品激活
- 《JavaScript》——面向对象之继承
- 一、算法第四版(二分查找、背包、队列、栈)
- 常规功能和模块自定义系统 (cfcmms)—035开发日志(每个tab有各自模式window的备忘录)
- 浅谈渗透测试实战
- 2016年的年度计划
- 简单的JSON增删改