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) 应用替换规则,返回替换后的字符串。static HighMultiReplacer工厂方法,创建HighMultiReplacer实例。intreplace(CharSequence text, int pos, StringBuilder out) 执行字符串替换,从指定位置开始,将结果追加到输出缓冲区。
-
Constructor Details
-
HighMultiReplacer
构造函数,初始化AC自动机。- Parameters:
map- 关键字映射,key为需要查找的字符串,value为替换值
-
-
Method Details
-
of
工厂方法,创建HighMultiReplacer实例。- Parameters:
map- 关键字映射,key为需要查找的字符串,value为替换值- Returns:
- HighMultiReplacer实例
-
replace
执行字符串替换,从指定位置开始,将结果追加到输出缓冲区。- Specified by:
replacein classStringReplacer- Parameters:
text- 待替换的字符串pos- 替换起始位置out- 输出缓冲区,存储替换结果- Returns:
- 替换后处理的字符数
-
apply
应用替换规则,返回替换后的字符串。- Specified by:
applyin interfaceFunction<CharSequence,CharSequence> - Overrides:
applyin classStringReplacer- Parameters:
text- 待替换的字符串- Returns:
- 替换后的字符串
-