2020-9-14检测字符串中的敏感词汇

`/**
     * 
     * @param str1 文本
     * @param dirty 铭感词汇数组
     * @param conversion 转换字符
     * @return
     */
    public static String hiddenString1(final String str1, final String[] dirty, final char conversion) {
        if (str1 != null && dirty != null) {
            //把想要查验的文本转换成字符数组
            final char[] charStr1 = str1.toCharArray();
            for (int i = 0; i < charStr1.length; i++) {
                for (int j = 0; j < dirty.length; j++) {
                    //根据这个敏感词汇找到它所在文本数据charStr1的开始下标
                    final int startIndex = str1.indexOf(dirty[j]);
                    //判断如果没有检查到 则跳过
                    if (startIndex > -1) {
                        //敏感词汇所在文本的开始下标+敏感词汇的长度  就是结束下标
                        final int i1 = startIndex + dirty[j].length();
                        //需要处理开始下标+敏感词汇长度  大于文本数据长度问题  如果大于  结束下标默认为文本最后一个字符的下标
                        final int endIndex = i1 <= str1.length() ? i1 : str1.length();
                        //判断从文本截取的字符串是否和敏感词汇一致,如果一致则按照敏感词汇的长度转换成conversion 例如'*'
                        final String substring = str1.substring(startIndex, endIndex);
                        if (dirty[j].equals(substring)) {
                            for (int y = startIndex; y < endIndex; y++) {
                                charStr1[y] =conversion;
                            }
                        }
                    }
                }
            }
            return new String(charStr1);
        }
        return null;
    }`
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值