Class HighMultiReplacerV2
java.lang.Object
org.miaixz.bus.core.text.replacer.StringReplacer
org.miaixz.bus.core.text.replacer.HighMultiReplacerV2
- All Implemented Interfaces:
Serializable,Function<CharSequence,,CharSequence> UnaryOperator<CharSequence>
高效替换器,通过查找指定关键字,替换对应的值 基于AC自动机算法实现,需要被替换的原字符串越大,替换的键值对越多,效率提升越明显 注意: 如果需要被替换的关键字出现交叉,最先匹配中的关键字会被替换 1、"abc","ab"
会优先替换"ab" 2、"abed","be" 会优先替换"abed" 3、"abc", "bc" 会优先替换"abc"
- Since:
- Java 17+
- Author:
- Kimi Liu
- See Also:
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionprotected static classAC 自动机 -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionapply(CharSequence text) 执行替换,按照StringReplacer.replace(CharSequence, int, StringBuilder)逻辑替换对应部分,其它部分保持原样protected intreplace(CharSequence text, int pos, StringBuilder out) 抽象的字符串替换方法,通过传入原字符串和当前位置,执行替换逻辑,返回处理或替换的字符串长度部分。
-
Constructor Details
-
HighMultiReplacerV2
-
-
Method Details
-
replace
Description copied from class:StringReplacer抽象的字符串替换方法,通过传入原字符串和当前位置,执行替换逻辑,返回处理或替换的字符串长度部分。- Specified by:
replacein classStringReplacer- Parameters:
text- 被处理的字符串pos- 当前位置out- 输出- Returns:
- 处理的原字符串长度,0表示跳过此字符
-
apply
Description copied from class:StringReplacer执行替换,按照StringReplacer.replace(CharSequence, int, StringBuilder)逻辑替换对应部分,其它部分保持原样- Specified by:
applyin interfaceFunction<CharSequence,CharSequence> - Overrides:
applyin classStringReplacer- Parameters:
text- 被处理的字符串- Returns:
- 替换后的字符串
-