Class Sensitive

java.lang.Object
org.miaixz.bus.core.text.dfa.Sensitive

public final class Sensitive extends Object
敏感词工具类
Since:
Java 17+
Author:
Kimi Liu
  • Field Details

  • Constructor Details

    • Sensitive

      public Sensitive()
  • Method Details

    • isInited

      public static boolean isInited()
      Returns:
      是否已经被初始化
    • init

      public static void init(Collection<String> sensitiveWords, boolean isAsync)
      初始化敏感词树
      Parameters:
      sensitiveWords - 敏感词列表
      isAsync - 是否异步初始化
    • init

      public static void init(Collection<String> sensitiveWords)
      初始化敏感词树
      Parameters:
      sensitiveWords - 敏感词列表
    • init

      public static void init(String sensitiveWords, String separator, boolean isAsync)
      初始化敏感词树
      Parameters:
      sensitiveWords - 敏感词列表组成的字符串
      separator - 分隔符
      isAsync - 是否异步初始化
    • init

      public static void init(String sensitiveWords, boolean isAsync)
      初始化敏感词树,使用逗号分隔每个单词
      Parameters:
      sensitiveWords - 敏感词列表组成的字符串
      isAsync - 是否异步初始化
    • setCharFilter

      public static void setCharFilter(Predicate<Character> charFilter)
      设置字符过滤规则,通过定义字符串过滤规则,过滤不需要的字符 当accept为false时,此字符不参与匹配
      Parameters:
      charFilter - 过滤函数
    • containsSensitive

      public static boolean containsSensitive(String text)
      是否包含敏感词
      Parameters:
      text - 文本
      Returns:
      是否包含
    • getFoundFirstSensitive

      public static FoundWord getFoundFirstSensitive(String text)
      查找敏感词,返回找到的第一个敏感词
      Parameters:
      text - 文本
      Returns:
      敏感词
    • getFoundAllSensitive

      public static List<FoundWord> getFoundAllSensitive(String text)
      查找敏感词,返回找到的所有敏感词
      Parameters:
      text - 文本
      Returns:
      敏感词
    • getFoundAllSensitive

      public static List<FoundWord> getFoundAllSensitive(String text, boolean isDensityMatch, boolean isGreedMatch)
      查找敏感词,返回找到的所有敏感词 密集匹配原则:假如关键词有 ab,b,文本是abab,将匹配 [ab,b,ab] 贪婪匹配(最长匹配)原则:假如关键字a,ab,最长匹配将匹配[a, ab]
      Parameters:
      text - 文本
      isDensityMatch - 是否使用密集匹配原则
      isGreedMatch - 是否使用贪婪匹配(最长匹配)原则
      Returns:
      敏感词
    • sensitiveFilter

      public static String sensitiveFilter(String text)
      处理过滤文本中的敏感词,默认替换成*
      Parameters:
      text - 文本
      Returns:
      敏感词过滤处理后的文本
    • sensitiveFilter

      public static String sensitiveFilter(String text, boolean isGreedMatch, SensitiveProcessor sensitiveProcessor)
      处理过滤文本中的敏感词,默认替换成*
      Parameters:
      text - 文本
      isGreedMatch - 贪婪匹配(最长匹配)原则:假如关键字a,ab,最长匹配将匹配[a, ab]
      sensitiveProcessor - 敏感词处理器,默认按匹配内容的字符数替换成*
      Returns:
      敏感词过滤处理后的文本