大佬们怎么实现对新增的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 delphi webbrowser组件网页下拉菜单自动选择问题
- ¥15 linux驱动,linux应用,多线程
- ¥20 我要一个分身加定位两个功能的安卓app
- ¥15 基于FOC驱动器,如何实现卡丁车下坡无阻力的遛坡的效果
- ¥15 IAR程序莫名变量多重定义
- ¥15 (标签-UDP|关键词-client)
- ¥15 关于库卡officelite无法与虚拟机通讯的问题
- ¥15 目标检测项目无法读取视频
- ¥15 GEO datasets中基因芯片数据仅仅提供了normalized signal如何进行差异分析
- ¥100 求采集电商背景音乐的方法