大佬们怎么实现对新增的name、description、title等文本时将敏感词(有表)替换掉,在yml里设置个开关
11条回答 默认 最新
- 走一步-再走一步 2021-12-24 17:01关注
public static void main(String[] args) { List<String> replaceList = Arrays.asList("牛B","牛逼","NB"); Dto dto = new Dto(); dto.setName("你真牛逼"); dto.setDescription("你真牛逼,哈哈NB"); dto.setTitle("你真厉害"); dto.doFilter(false,replaceList); System.out.println(dto); dto.doFilter(true,replaceList); System.out.println(dto); } @Data static class Dto{ private String name; private String description; private String title; public void doFilter(boolean isFilter,List<String> filterLists){ if (!isFilter || CollectionUtils.isEmpty(filterLists)){ return; } this.name = doFilter(this.name,filterLists); this.description = doFilter(this.description,filterLists); this.title = doFilter(this.title,filterLists); } private String doFilter(String str,List<String> filterLists){ if (StringUtils.isBlank(str)){ return str; } for (String filtetStr : filterLists) { if (str.contains(filtetStr)){ str = str.replaceAll(filtetStr,"***"); } } return str; } }
执行结果:
Dto(name=你真牛逼, description=你真牛逼,哈哈NB, title=你真厉害)
Dto(name=你真***, description=你真,哈哈, title=你真厉害)本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 1无用
悬赏问题
- ¥15 微信会员卡等级和折扣规则
- ¥15 微信公众平台自制会员卡可以通过收款码收款码收款进行自动积分吗
- ¥15 随身WiFi网络灯亮但是没有网络,如何解决?
- ¥15 gdf格式的脑电数据如何处理matlab
- ¥20 重新写的代码替换了之后运行hbuliderx就这样了
- ¥100 监控抖音用户作品更新可以微信公众号提醒
- ¥15 UE5 如何可以不渲染HDRIBackdrop背景
- ¥70 2048小游戏毕设项目
- ¥20 mysql架构,按照姓名分表
- ¥15 MATLAB实现区间[a,b]上的Gauss-Legendre积分