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