public class DfaValidScanner
extends java.lang.Object
实现目标:
1、大小写
2、全角半角
3、停顿词
4、重复词
5、有效时间
| 限定符和类型 | 字段和说明 |
|---|---|
protected static int |
CONVERT_STEP
ASCII表中除空格外的可见字符与对应的全角字符的相对偏移
|
protected static char |
DBC_SPACE
半角空格的值,在ASCII中为32(Decimal)
|
protected static char |
SBC_CHAR_END
全角对应于ASCII表的可见字符到~结束,偏移值为65374
|
protected static char |
SBC_CHAR_START
全角对应于ASCII表的可见字符从!
|
protected static char |
SBC_SPACE
全角空格的值,它没有遵从与ASCII的相对偏移,必须单独处理
|
protected static char |
SHOW_SIGN
发现敏感词后替换显示的字符
|
| 构造器和说明 |
|---|
DfaValidScanner(java.util.List<? extends DfaValidWord> sensitivewords)
构建一个敏感词扫描器.
|
DfaValidScanner(java.lang.String symbols,
java.util.List<? extends DfaValidWord> sensitivewords)
构建一个敏感词扫描器.
|
| 限定符和类型 | 方法和说明 |
|---|---|
protected xyz.noark.game.dfa.DfaNode |
addSensitiveWords(java.lang.String word)
向DFA树中添加一个敏感词.
|
protected int |
charConvert(char src)
大写转化为小写,全角转化为半角
|
boolean |
contains(java.lang.String text)
判定指定文本中是否包含了敏感词.
|
java.util.Optional<java.lang.String> |
find(java.lang.String text)
查找出指定文本中包含的第一个敏感词并返回.
|
java.util.List<java.lang.String> |
findAll(java.lang.String text)
查找出指定文本中包含的全部敏感词并返回.
|
protected void |
initSeparatesSymbol(java.lang.String symbols)
初始化分隔停顿符
|
java.lang.String |
replace(java.lang.String text)
替换指定文本中的敏感词为星号(*).
|
protected static final char SBC_CHAR_START
protected static final char SBC_CHAR_END
protected static final char SBC_SPACE
protected static final char DBC_SPACE
protected static final int CONVERT_STEP
protected static final char SHOW_SIGN
public DfaValidScanner(java.util.List<? extends DfaValidWord> sensitivewords)
默认的分隔停顿符:`~!1@2#3$4%5^6&7*8(9)0_-+={[}]|\\:;\"'<,>.?/!¥%……{}【】abcdefghigklmnopqrstuvwxyz
sensitivewords - 敏感词库public DfaValidScanner(java.lang.String symbols,
java.util.List<? extends DfaValidWord> sensitivewords)
symbols - 分隔停顿符sensitivewords - 敏感词列表protected void initSeparatesSymbol(java.lang.String symbols)
symbols - 分隔停顿符protected xyz.noark.game.dfa.DfaNode addSensitiveWords(java.lang.String word)
word - 敏感词protected int charConvert(char src)
src - 输入源public boolean contains(java.lang.String text)
应用场景:玩家创角验证名称,创建工会验证名称等
text - 指定文本public java.lang.String replace(java.lang.String text)
应用场景:聊天过滤,公会公告等过滤
text - 指定文本public java.util.Optional<java.lang.String> find(java.lang.String text)
text - 指定文本public java.util.List<java.lang.String> findAll(java.lang.String text)
text - 指定文本