弋惪 2021-12-24 14:41 采纳率: 33.3%
浏览 163
已结题

关于java实现数据过滤

大佬们怎么实现对新增的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=你真厉害)

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(10条)

报告相同问题?

问题事件

  • 系统已结题 1月1日
  • 已采纳回答 12月24日
  • 修改了问题 12月24日
  • 创建了问题 12月24日

悬赏问题

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