diff --git a/src/main/java/com/github/houbb/sensitive/word/utils/InnerFormatUtils.java b/src/main/java/com/github/houbb/sensitive/word/utils/InnerFormatUtils.java
new file mode 100644
index 0000000..295b401
--- /dev/null
+++ b/src/main/java/com/github/houbb/sensitive/word/utils/InnerFormatUtils.java
@@ -0,0 +1,40 @@
+package com.github.houbb.sensitive.word.utils;
+
+import com.github.houbb.heaven.support.instance.impl.Instances;
+import com.github.houbb.heaven.util.lang.StringUtil;
+import com.github.houbb.sensitive.word.api.ICharFormat;
+import com.github.houbb.sensitive.word.api.IWordContext;
+import com.github.houbb.sensitive.word.support.format.CharFormatChain;
+
+/**
+ * 内部格式化工具类
+ * @since 0.1.1
+ */
+public final class InnerFormatUtils {
+
+ private InnerFormatUtils(){}
+
+ /**
+ * 格式化
+ * @param original 原始
+ * @param context 上下文
+ * @return 结果
+ * @since 0.1.1
+ */
+ public static String format(String original, IWordContext context) {
+ if(StringUtil.isEmpty(original)) {
+ return original;
+ }
+
+ StringBuilder stringBuilder = new StringBuilder();
+ ICharFormat charFormat = Instances.singleton(CharFormatChain.class);
+ char[] chars = original.toCharArray();
+ for(char c : chars) {
+ char cf = charFormat.format(c, context);
+ stringBuilder.append(cf);
+ }
+
+ return stringBuilder.toString();
+ }
+
+}
diff --git a/src/test/java/com/github/houbb/sensitive/word/bugs/b20211211/MySensitiveTest.java b/src/test/java/com/github/houbb/sensitive/word/bugs/b20211211/MySensitiveTest.java
new file mode 100644
index 0000000..1cb2144
--- /dev/null
+++ b/src/test/java/com/github/houbb/sensitive/word/bugs/b20211211/MySensitiveTest.java
@@ -0,0 +1,27 @@
+package com.github.houbb.sensitive.word.bugs.b20211211;
+
+import com.github.houbb.sensitive.word.api.IWordAllow;
+import com.github.houbb.sensitive.word.api.IWordDeny;
+import com.github.houbb.sensitive.word.bs.SensitiveWordBs;
+import com.github.houbb.sensitive.word.support.allow.WordAllows;
+import com.github.houbb.sensitive.word.support.deny.WordDenys;
+import org.junit.Test;
+
+public class MySensitiveTest {
+
+
+ @Test
+ public void test() {
+ IWordDeny wordDeny = WordDenys.chains(WordDenys.system(), new MyWordDeny());
+ IWordAllow wordAllow = WordAllows.chains(WordAllows.system(), new MyWordAllow());
+ SensitiveWordBs sensitiveWordBs = SensitiveWordBs.newInstance()
+ .wordAllow(wordAllow)
+ .wordDeny(wordDeny)// 各种其他配置
+ .init();// init() 初始化敏感词字典
+
+ final String text = "五星红旗 我的自定义敏感词尼玛";
+ //输出测试结果
+ System.out.println("敏感词:"+sensitiveWordBs.findAll(text).toString());
+ }
+
+}
diff --git a/src/test/java/com/github/houbb/sensitive/word/bugs/b20211211/MyWordAllow.java b/src/test/java/com/github/houbb/sensitive/word/bugs/b20211211/MyWordAllow.java
new file mode 100644
index 0000000..9ed85ec
--- /dev/null
+++ b/src/test/java/com/github/houbb/sensitive/word/bugs/b20211211/MyWordAllow.java
@@ -0,0 +1,15 @@
+package com.github.houbb.sensitive.word.bugs.b20211211;
+
+import com.github.houbb.sensitive.word.api.IWordAllow;
+
+import java.util.Arrays;
+import java.util.List;
+
+public class MyWordAllow implements IWordAllow {
+
+ @Override
+ public List