虽然我知道咱们程序员没少见敏感词的身影,尤其是在各类内容审查和过滤需求中,但今天要介绍的这个工具,完全就是那种“够用就好”的代表。
它轻巧、简单,还兼具一系列方便的配置。
Step 1:准备工作——引入 Maven 依赖
com.github.houbb:sensitive-word:0.18.0
这个开源库的,所以第一步很简单,咱们直接引入 Maven 依赖。看看这个 Maven 配置:<dependency>
<groupId>com.github.houbb</groupId>
<artifactId>sensitive-word</artifactId>
<version>0.18.0</version>
</dependency>
Step 2:核心方法使用实例
常规检测功能
查找敏感词 想象一下,我们要检查一句话是否包含敏感词,比如“我今天吃了炸鸡”。假如我们想检查“炸鸡”是不是个敏感词,那可以这样: SensitiveWordHelper.containsSensitiveWord("我今天吃了炸鸡"); 上面这行代码返回一个布尔值,告诉你到底有没有这个敏感词。简单吧? 查找第一个敏感词 如果你想知道这句话里的第一个敏感词是什么,可以用 findFirst
方法:String firstSensitiveWord = SensitiveWordHelper.findFirst("我今天吃了炸鸡"); 不过话说回来,一般来说大家可能更关心是不是所有敏感词都找出来了,所以更推荐用 findAll
。查找所有敏感词 要查找所有敏感词时, findAll
方法是你的好伙伴:List<String> allSensitiveWords = SensitiveWordHelper.findAll("我今天吃了炸鸡和啤酒"); 这个方法会返回所有的敏感词,万一客户想查出一句话里的所有“不和谐词汇”,这就派上用场了。 替换敏感词 最后,这个工具还能替换敏感词,你可以指定替换字符,比如用“*”把敏感词打码: String replacedText = SensitiveWordHelper.replace("我今天吃了炸鸡", '*'); 输出就会变成“我今天吃了**”,话说这也太直接了😂。
Step 3:特性检测
1. 忽略大小写、特殊字符
SensitiveWordHelper.ignoreCase().ignoreWidth().containsSensitiveWord("我今天吃了Zha鸡");
.ignoreCase()
和 .ignoreWidth()
配置,你可以灵活设置检测规则。随意改大小写和字符宽度?不存在的,统统识别!👍2. 支持简繁体检测
.ignoreChineseStyle()
就很管用了:SensitiveWordHelper.ignoreChineseStyle().containsSensitiveWord("我今天吃了炸雞");
3. 支持重复字符检测
.ignoreRepeat()
后,工具就可以识别出这些重复字符了:SensitiveWordHelper.ignoreRepeat().containsSensitiveWord("我今天吃了炸。。。鸡");
Step 4:更多检测策略(自定义)
IWordReplace
接口,定制属于你的敏感词替换逻辑。话不多说,直接上代码:自定义替换策略
public class CustomWordReplace implements IWordReplace {
@Override
public String replace(String word) {
return "[屏蔽]";
}
}
// 使用自定义替换策略
SensitiveWordHelper.replace("我今天吃了炸鸡", new CustomWordReplace());
Step 5:高级检测选项
SensitiveWordHelper.containsSensitiveWord("我的邮箱是test@example.com");
示例:IPv4 地址检测
SensitiveWordHelper.containsSensitiveWord("服务器IP为192.168.1.1");
-END-
以上,就是今天的分享了,看完文章记得右下角给何老师点赞,也欢迎在评论区写下你的留言。