java.lang.Object
org.miaixz.bus.core.text.finder.MultiStringFinder
- Direct Known Subclasses:
HighMultiReplacerV2.AhoCorasickAutomaton
多字符串查询器 底层思路 使用 AC 自动机实现
- Since:
- Java 17+
- Author:
- Kimi Liu
-
Nested Class Summary
Nested Classes -
Field Summary
FieldsModifier and TypeFieldDescriptionprotected final int全部字符数量字符索引protected final MultiStringFinder.Node根节点 -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected void构建 fail指针过程 构建 directRouter 直接访问路由表 减少跳fail次数 直接跳 router 边protected voidbuildPrefixTree(Collection<String> stringSst) 构建前缀树查询匹配的字符串protected intgetIndex(char c) 获取字符 下标static MultiStringFinderof(Collection<String> source) 创建多字符串查询器
-
Field Details
-
charIndexMap
字符索引 -
allCharSize
protected final int allCharSize全部字符数量 -
root
根节点
-
-
Constructor Details
-
MultiStringFinder
构建多字符串查询器- Parameters:
source- 字符串集合
-
-
Method Details
-
of
创建多字符串查询器- Parameters:
source- 字符串集合- Returns:
- 多字符串查询器
-
buildPrefixTree
构建前缀树- Parameters:
stringSst- 待匹配的字符串
-
buildFail
protected void buildFail()构建 fail指针过程 构建 directRouter 直接访问路由表 减少跳fail次数 直接跳 router 边 -
findMatch
查询匹配的字符串- Parameters:
text- 返回每个匹配的 字符串 value是字符首字母地址- Returns:
- 匹配结果
-
getIndex
protected int getIndex(char c) 获取字符 下标- Parameters:
c- 字符- Returns:
- 下标
-