From b384198d5b261a602b8899ba7188ab446b7d6fed Mon Sep 17 00:00:00 2001 From: yudasen <2436348937@qq.com> Date: Sun, 16 Feb 2025 18:42:31 +0800 Subject: [PATCH] =?UTF-8?q?feature:=20=E6=8F=90=E4=BE=9B=E8=87=AA=E5=AE=9A?= =?UTF-8?q?=E4=B9=89=E6=9B=BF=E6=8D=A2=E7=AD=96=E7=95=A5=E7=9A=84api,?= =?UTF-8?q?=E8=A7=A3=E5=86=B3issue#36=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../sensitive/word/api/ISensitiveWord.java | 8 +++++--- .../sensitive/word/bs/SensitiveWordBs.java | 5 ++++- .../word/core/AbstractSensitiveWord.java | 7 +++---- .../word/bs/SensitiveWordBsReplaceTest.java | 20 +++++++++++++++++++ 4 files changed, 32 insertions(+), 8 deletions(-) create mode 100644 src/test/java/com/github/houbb/sensitive/word/bs/SensitiveWordBsReplaceTest.java diff --git a/src/main/java/com/github/houbb/sensitive/word/api/ISensitiveWord.java b/src/main/java/com/github/houbb/sensitive/word/api/ISensitiveWord.java index c3de23d..fe921a4 100644 --- a/src/main/java/com/github/houbb/sensitive/word/api/ISensitiveWord.java +++ b/src/main/java/com/github/houbb/sensitive/word/api/ISensitiveWord.java @@ -33,16 +33,18 @@ public interface ISensitiveWord { /** * 替换所有敏感词内容 - * + *
* ps: 这里可以添加优化。
*
- * @param target 目标字符串
+ * @param target 目标字符串
* @param context 上下文
+ * @param replace 替换策略
* @return 替换后结果
* @since 0.3.2
*/
String replace(final String target,
- final IWordContext context);
+ final IWordContext context,
+ final IWordReplace replace);
/**
* 包含
diff --git a/src/main/java/com/github/houbb/sensitive/word/bs/SensitiveWordBs.java b/src/main/java/com/github/houbb/sensitive/word/bs/SensitiveWordBs.java
index 31441f3..a9afa35 100644
--- a/src/main/java/com/github/houbb/sensitive/word/bs/SensitiveWordBs.java
+++ b/src/main/java/com/github/houbb/sensitive/word/bs/SensitiveWordBs.java
@@ -592,7 +592,10 @@ public class SensitiveWordBs implements ISensitiveWordDestroy {
* @since 0.2.0
*/
public String replace(final String target) {
- return sensitiveWord.replace(target, context);
+ return this.replace(target,context.wordReplace());
+ }
+ public String replace(final String target, IWordReplace replace) {
+ return sensitiveWord.replace(target, context, replace);
}
/**
diff --git a/src/main/java/com/github/houbb/sensitive/word/core/AbstractSensitiveWord.java b/src/main/java/com/github/houbb/sensitive/word/core/AbstractSensitiveWord.java
index 7648300..28c8866 100644
--- a/src/main/java/com/github/houbb/sensitive/word/core/AbstractSensitiveWord.java
+++ b/src/main/java/com/github/houbb/sensitive/word/core/AbstractSensitiveWord.java
@@ -38,10 +38,9 @@ public abstract class AbstractSensitiveWord implements ISensitiveWord {
* @return 结果
* @since 0.3.2
*/
- protected String doReplace(String target, List