資源簡(jiǎn)介
1、匹配大小寫(xiě)過(guò)濾
2、匹配全角半角過(guò)濾
3、匹配過(guò)濾停頓詞過(guò)濾。
例如:
解析問(wèn)題: 你是逗比嗎?
解析字?jǐn)?shù) : 33
加載時(shí)間 : 325928565ns
加載時(shí)間 : 325ms
解析時(shí)間 : 330260250ns
解析時(shí)間 : 330ms
你是逗比嗎?****!****,你竟然用***,*********
是否包含敏感詞: true
解析時(shí)間 : 149028ns
解析時(shí)間 : 0ms

代碼片段和文件信息
package?org.andy.sensitivewdfilter;
/**
?*?創(chuàng)建時(shí)間: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;
}
/**
?*?不如直接循環(huán)調(diào)用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));
}//這一步執(zhí)行完跟循環(huán)調(diào)用contains差不多了
for?(int?i?=?0;?i? if?((elements[i]?&?~this.elements[i])?!=?0)
return?false;
return?true;
}
/**
?*?目前沒(méi)有去維護(hù)size,每次都是去計(jì)算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);
}
}
?屬性????????????大小?????日期????時(shí)間???名稱
-----------?---------??----------?-----??----
?????目錄???????????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\
評(píng)論
共有 條評(píng)論