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