From c35772d70e3c1b65dce3ccf4c91e30849e206723 Mon Sep 17 00:00:00 2001 From: yds <11232266+yuds11@user.noreply.gitee.com> Date: Fri, 2 May 2025 23:31:43 +0800 Subject: [PATCH] =?UTF-8?q?=E5=88=A0=E9=99=A4=E8=AF=AF=E5=8A=A0=E7=9A=84re?= =?UTF-8?q?place?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../houbb/sensitive/word/api/ISensitiveWord.java | 14 ++++++-------- .../houbb/sensitive/word/bs/SensitiveWordBs.java | 6 ++---- .../sensitive/word/core/AbstractSensitiveWord.java | 8 ++++---- 3 files changed, 12 insertions(+), 16 deletions(-) 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 fe921a4..17f246d 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 @@ -19,7 +19,7 @@ public interface ISensitiveWord { * @see WordValidModeEnum#FAIL_OVER 建议使用全部检测返回模式 */ List findAll(final String string, - final IWordContext context); + final IWordContext context); /** * 返回第一个对应的敏感词 @@ -29,22 +29,20 @@ public interface ISensitiveWord { * @since 0.3.2 */ IWordResult findFirst(final String string, - final IWordContext context); + final IWordContext context); /** * 替换所有敏感词内容 - *

+ * * ps: 这里可以添加优化。 * - * @param target 目标字符串 + * @param target 目标字符串 * @param context 上下文 - * @param replace 替换策略 * @return 替换后结果 * @since 0.3.2 */ String replace(final String target, - final IWordContext context, - final IWordReplace replace); + final IWordContext context); /** * 包含 @@ -54,6 +52,6 @@ public interface ISensitiveWord { * @since 0.3.2 */ boolean contains(final String string, - final IWordContext context); + final IWordContext context); } 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 86a48b9..8d10b5b 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 @@ -672,12 +672,10 @@ public class SensitiveWordBs implements ISensitiveWordDestroy { * @since 0.2.0 */ public String replace(final String target) { - return this.replace(target,context.wordReplace()); - } - public String replace(final String target, IWordReplace replace) { - return sensitiveWord.replace(target, context, replace); + return sensitiveWord.replace(target, context); } + /** * 获取敏感词的标签 * 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 28c8866..c3ce135 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,8 +38,9 @@ public abstract class AbstractSensitiveWord implements ISensitiveWord { * @return 结果 * @since 0.3.2 */ - protected String doReplace(String target, List allList, IWordContext context, IWordReplace replace) { + protected String doReplace(String target, List allList, IWordContext context) { // 根据 index 直接分割 + final IWordReplace replace = context.wordReplace(); // 是否需要对 allList 排序? StringBuilder stringBuilder = new StringBuilder(); @@ -90,7 +91,7 @@ public abstract class AbstractSensitiveWord implements ISensitiveWord { } @Override - public String replace(String target, IWordContext context, IWordReplace replace) { + public String replace(String target, IWordContext context) { if(StringUtil.isEmpty(target)) { return target; } @@ -100,9 +101,8 @@ public abstract class AbstractSensitiveWord implements ISensitiveWord { return target; } - return doReplace(target, allList, context, replace); + return doReplace(target, allList, context); } - @Override public boolean contains(String string, IWordContext context) { //1. 第一个存在