资源简介
1、匹配大小写过滤
2、匹配全角半角过滤
3、匹配过滤停顿词过滤。
例如:
解析问题: 你是逗比吗?
解析字数 : 33
加载时间 : 325928565ns
加载时间 : 325ms
解析时间 : 330260250ns
解析时间 : 330ms
你是逗比吗?****!****,你竟然用***,*********
是否包含敏感词: true
解析时间 : 149028ns
解析时间 : 0ms
代码片段和文件信息
package org.andy.sensitivewdfilter;
/**
* 创建时间:2016年8月30日 下午2:57:10
*
* @author andy
* @version 2.2
*/
public class FilterSet{
private final long[] elements;
public FilterSet() {
elements = new long[1 + (65535 >>> 6)];
}
public void add(final int no) {
elements[no >>> 6] |= (1L << (no & 63));
}
public void add(final int... no) {
for(int currNo : no)
elements[currNo >>> 6] |= (1L << (currNo & 63));
}
public void remove(final int no) {
elements[no >>> 6] &= ~(1L << (no & 63));
}
/**
*
* @param no
* @return true:添加成功 false:原已包含
*/
public boolean addAndNotify(final int no) {
int eWordNum = no >>> 6;
long oldElements = elements[eWordNum];
elements[eWordNum] |= (1L << (no & 63));
boolean result = elements[eWordNum] != oldElements;
// if (result)
// size++;
return result;
}
/**
*
* @param no
* @return true:移除成功 false:原本就不包含
*/
public boolean removeAndNotify(final int no) {
int eWordNum = no >>> 6;
long oldElements = elements[eWordNum];
elements[eWordNum] &= ~(1L << (no & 63));
boolean result = elements[eWordNum] != oldElements;
return result;
}
public boolean contains(final int no) {
return (elements[no >>> 6] & (1L << (no & 63))) != 0;
}
public boolean containsAll(final int... no) {
if(no.length==0)
return true;
for(int currNo : no)
if((elements[currNo >>> 6] & (1L << (currNo & 63))) == 0)
return false;
return true;
}
/**
* 不如直接循环调用contains
* @param no
* @return
*/
public boolean containsAll_ueslessWay(final int... no) {
long[] elements = new long[this.elements.length];
for(int currNo : no){
elements[currNo >>> 6] |= (1L << (currNo & 63));
}//这一步执行完跟循环调用contains差不多了
for (int i = 0; i < elements.length; i++)
if ((elements[i] & ~this.elements[i]) != 0)
return false;
return true;
}
/**
* 目前没有去维护size,每次都是去计算size
* @return
*/
public int size() {
int size = 0;
for (long element : elements)
size += Long.bitCount(element);
return size;
}
public static void main(String[] args) {
FilterSet oi = new FilterSet();
System.out.println(oi.elements.length);
}
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2016-08-31 11:28 sensitivewd-filter\
文件 2239 2016-08-30 21:13 sensitivewd-filter\pom.xm
目录 0 2016-08-31 11:28 sensitivewd-filter\src\
目录 0 2016-08-31 11:28 sensitivewd-filter\src\main\
目录 0 2016-08-31 11:28 sensitivewd-filter\src\main\java\
目录 0 2016-08-31 11:28 sensitivewd-filter\src\main\java\org\
目录 0 2016-08-31 11:28 sensitivewd-filter\src\main\java\org\andy\
目录 0 2016-08-31 11:28 sensitivewd-filter\src\main\java\org\andy\sensitivewdfilter\
文件 2396 2016-08-30 21:11 sensitivewd-filter\src\main\java\org\andy\sensitivewdfilter\FilterSet.java
文件 5807 2016-08-31 10:56 sensitivewd-filter\src\main\java\org\andy\sensitivewdfilter\WordFilter.java
文件 1675 2016-08-30 21:11 sensitivewd-filter\src\main\java\org\andy\sensitivewdfilter\WordNode.java
目录 0 2016-08-31 11:28 sensitivewd-filter\src\main\java\org\andy\sensitivewdfilter\util\
文件 3502 2016-08-30 21:11 sensitivewd-filter\src\main\java\org\andy\sensitivewdfilter\util\BCConvert.java
目录 0 2016-08-31 11:28 sensitivewd-filter\src\main\resources\
文件 179 2016-08-30 15:39 sensitivewd-filter\src\main\resources\stopwd.txt
文件 6119 2016-08-30 16:42 sensitivewd-filter\src\main\resources\wd.txt
目录 0 2016-08-31 11:28 sensitivewd-filter\src\test\
目录 0 2016-08-31 11:28 sensitivewd-filter\src\test\java\
目录 0 2016-08-31 11:28 sensitivewd-filter\src\test\java\org\
目录 0 2016-08-31 11:28 sensitivewd-filter\src\test\java\org\andy\
目录 0 2016-08-31 11:28 sensitivewd-filter\src\test\java\org\andy\sensitivewdfilter\
目录 0 2016-08-31 11:28 sensitivewd-filter\src\test\java\org\andy\sensitivewdfilter\test\
文件 1061 2016-08-31 10:44 sensitivewd-filter\src\test\java\org\andy\sensitivewdfilter\test\TestSensitiveWdFilter.java
目录 0 2016-08-31 11:29 sensitivewd-filter\src\test\resources\
- 上一篇:hamcrest的jar包
- 下一篇:Java微信支付-微信企业付款到个人
相关资源
- 基于Jpcap的网络数据抓包程序
- 协同过滤推荐系统 Java
- 基于用户的协同过滤算法
- 基于用户的协同过滤JAVA
- 基于java的协同过滤
- 高效敏感词过滤JAVA实现DFA算法 5000字
- 仅仅用个过滤器,实现jsp网站计数永
- java servlet 过滤器
- 敏感词库27000条代码实现敏感词过滤
- java后台获取小程序用户信息和生成自
- 基于用户评分和用户属性的混合加权
- 张人杰双向词汇Java敏感词过滤3.0.ra
- 管道过滤器的实现java
- jsp登录验证含过滤器
- 基于贝叶斯算法的JavaMail垃圾邮件过滤
- FilterPacket流量过滤程序
- 协同过滤推荐算法java实现
- javaweb简单留言版
- 协同过滤算法 java源码 毕设demo
- java过滤器,防止XSS、SQL
- 敏感词库最全、最新、最方便
- Java 循环体的过滤器
- Java 在查询语句中过滤掉字符串中的空
- Java 简化文件(夹)过滤
- Sturts敏感字过滤及校验
- Java 使用视图过滤不想要的数据
- Java 在插入数据时过滤掉危险字符
- JSP登陆模块(适合 过滤器、servlet、注
- A-Z字母排序和过滤搜索功能SortListVi
- Android studio中使用三种方法设置图片的
评论
共有 条评论