Class State
java.lang.Object
com.hankcs.algorithm.State
一个状态有如下几个功能
- success; 成功转移到另一个状态
- failure; 不可顺着字符串跳转的话,则跳转到一个浅一点的节点
- emits; 命中一个模式串
根节点稍有不同,根节点没有 failure 功能,它的“failure”指的是按照字符串路径转移到下一个状态。其他节点则都有failure状态。
-
Field Summary
Fields -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidaddEmit(int keyword) 添加一个匹配到的模式串(这个状态对应着这个模式串)voidaddEmit(Collection<Integer> emits) 添加一些匹配到的模式串emit()获取这个节点代表的模式串(们)failure()获取failure状态intgetDepth()获取节点深度intgetIndex()获取最大的值获取goto表boolean是否是终止状态按照character转移,根节点转移失败会返回自己(永远不会返回null)private State转移到下一个状态nextStateIgnoreRootState(Character character) 按照character转移,任何节点转移失败会返回nullvoidsetFailure(State failState, int[] fail) 设置failure状态voidsetIndex(int index) toString()
-
Field Details
-
depth
protected final int depth模式串的长度,也是这个状态的深度 -
failure
fail 函数,如果没有匹配到,则跳转到此状态。 -
emits
-
success
-
index
private int index在双数组中的对应下标
-
-
Constructor Details
-
State
public State()构造深度为0的节点 -
State
public State(int depth) 构造深度为depth的节点- Parameters:
depth-
-
-
Method Details
-
getDepth
public int getDepth()获取节点深度- Returns:
-
addEmit
public void addEmit(int keyword) 添加一个匹配到的模式串(这个状态对应着这个模式串)- Parameters:
keyword-
-
getLargestValueId
-
addEmit
-
emit
-
isAcceptable
public boolean isAcceptable()是否是终止状态- Returns:
-
failure
-
setFailure
-
nextState
-
nextState
-
nextStateIgnoreRootState
-
addState
-
getStates
-
getTransitions
-
toString
-
getSuccess
-
getIndex
public int getIndex() -
setIndex
public void setIndex(int index)
-