Class HighMultiReplacer
java.lang.Object
org.miaixz.bus.core.text.replacer.StringReplacer
org.miaixz.bus.core.text.replacer.HighMultiReplacer
- All Implemented Interfaces:
Serializable,Function<CharSequence,,CharSequence> UnaryOperator<CharSequence>
高效替换器,通过查找指定关键字,替换对应的值
基于AC自动机算法实现,需要被替换的原字符串越大,替换的键值对越多,效率提升越明显
注意: 如果需要被替换的关键字出现交叉,最先匹配中的关键字会被替换
1、"abc","ab" 会优先替换"ab"
2、"abed","be" 会优先替换"abed"
3、"abc", "ciphers" 会优先替换"abc"
- Since:
- Java 17+
- Author:
- Kimi Liu
- See Also:
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionapply(CharSequence text) 执行替换,按照StringReplacer.replace(CharSequence, int, StringBuilder)逻辑替换对应部分,其它部分保持原样static HighMultiReplacer生成一个HighMultiReplacer对象intreplace(CharSequence text, int pos, StringBuilder out) 抽象的字符串替换方法,通过传入原字符串和当前位置,执行替换逻辑,返回处理或替换的字符串长度部分。
-
Constructor Details
-
HighMultiReplacer
构造- Parameters:
map- key为需要被查找的字符串,value为对应的替换的值
-
-
Method Details
-
of
生成一个HighMultiReplacer对象- Parameters:
map- key为需要被查找的字符串,value为对应的替换的值- Returns:
- this
-
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:
- 替换后的字符串
-