弋惪 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 微信会员卡等级和折扣规则
  • ¥15 微信公众平台自制会员卡可以通过收款码收款码收款进行自动积分吗
  • ¥15 随身WiFi网络灯亮但是没有网络,如何解决?
  • ¥15 gdf格式的脑电数据如何处理matlab
  • ¥20 重新写的代码替换了之后运行hbuliderx就这样了
  • ¥100 监控抖音用户作品更新可以微信公众号提醒
  • ¥15 UE5 如何可以不渲染HDRIBackdrop背景
  • ¥70 2048小游戏毕设项目
  • ¥20 mysql架构,按照姓名分表
  • ¥15 MATLAB实现区间[a,b]上的Gauss-Legendre积分