Java敏感词过滤工具类 - 敏感词检测与替换
/**
-
敏感词工具类
-
@author binbin.hou
-
@since 0.0.13 */ public final class SensitiveWordHelper {
private SensitiveWordHelper() { }
/**
- 默认的实现
- @since 0.0.13 */ private static final SensitiveWordBs WORD_BS = SensitiveWordBs.newInstance().init();
/**
- 是否包含敏感词
- @param target 目标字符串
- @return 是否
- @since 0.0.13 */ public static boolean contains(final String target) { return WORD_BS.contains(target); }
/**
- 返回所有的敏感词
-
- 这里是默认去重的,且是有序的。
-
- 如果不存在,返回空列表
- @param target 目标字符串
- @return 敏感词列表
- @since 0.0.1
*/
public static List
findAll(final String target) { return WORD_BS.findAll(target); }
/**
- 返回第一个敏感词
- (1) 如果不存在,则返回 'null'
- @param target 目标字符串
- @return 敏感词
- @since 0.0.13 */ public static String findFirst(final String target) { return WORD_BS.findFirst(target); }
/**
- 替换所有内容
- @param target 目标字符串
- @param replace 替换策略
- @return 替换后结果
- @since 0.2.0 */ public static String replace(final String target, final ISensitiveWordReplace replace) { return WORD_BS.replace(target, replace); }
/**
- 替换所有内容
- @param target 目标字符串
- @param replaceChar 替换为的 char
- @return 替换后结果
- @since 0.0.13 */ public static String replace(final String target, final char replaceChar) { return WORD_BS.replace(target, replaceChar); }
/**
- 替换所有内容
-
- 默认使用空格替换,避免星号改变 md 的格式。
- @param target 目标字符串
- @return 替换后结果
- @since 0.0.13 */ public static String replace(final String target) { return WORD_BS.replace(target); }
/**
- 返回所有的敏感词
- @param target 目标字符串
- @param handler 结果处理类
- @param
泛型 - @return 敏感词列表
- @since 0.1.0
*/
public static
List findAll(final String target, final IWordResultHandler handler) { return WORD_BS.findAll(target, handler); }
/**
- 返回第一个敏感词
- (1) 如果不存在,则返回 'null'
- @param target 目标字符串
- @param handler 结果处理类
- @param
泛型 - @return 敏感词
- @since 0.1.0
*/
public static
R findFirst(final String target, final IWordResultHandler handler) { return WORD_BS.findFirst(target, handler); }
}
public static String filterSensitiveWords(String input) {
SensitiveWordBs wordBs = SensitiveWordBs.newInstance()
.ignoreCase(true)
.ignoreWidth(true)
.ignoreNumStyle(true)
.ignoreChineseStyle(true)
.ignoreEnglishStyle(true)
.ignoreRepeat(true)
.enableNumCheck(false)
.enableEmailCheck(true)
.enableUrlCheck(true)
.init();
boolean isFalse = wordBs.contains(input); // 使用wordBs判断是否包含敏感词
if (isFalse) {
String result = wordBs.replace(input); // 使用wordBs替换敏感词
return result;
} else {
return input;
}
原文地址: https://www.cveoy.top/t/topic/pduv 著作权归作者所有。请勿转载和采集!