System.Text.StringBuilder sb = new System.Text.StringBuilder(text.Length);
  string filterText = "需要过滤的脏字 以|分开" ;
  //脏字 可根据自己的方式用分隔符
  string [] filterData = filterText.Split( '|' );
  foreach (var item in filterData)
  {
   char value = item[0];
   if (dicList.ContainsKey(value))
    dicList[value].Add(item);
   else
    dicList.Add(value, new List< string >() { item });
  }
  int count = text.Length;
  for ( int i = 0; i < count; i++)
  {
   char word = text[i];
   if (dicList.ContainsKey(word)) //如果在字典表中存在这个key
   {
    int num = 0; //是否找到匹配的关键字 1找到0未找到
    var data = dicList[word].OrderBy(g => g.Length);
    //把该key的字典集合按 字符数排序(方便下面从少往多截取字符串查找)
    foreach (var wordbook in data)
    {
     if (i + wordbook.Length <= count)
     //如果需截取的字符串的索引小于总长度 则执行截取
     {
      string result = text.Substring(i, wordbook.Length);
      //根据关键字长度往后截取相同的字符数进行比较
      if (result == wordbook)
      {
       num = 1;
       sb.Append(GetString(result));
       i = i + wordbook.Length - 1;
       //比较成功 同时改变i的索引
       break ;
      }
     }
    }
    if (num == 0)
     sb.Append(word);
   }
   else
    sb.Append(word);
  }
  return sb.ToString();
}
/// <summary>
/// 替换星号
/// </summary>
/// <param name="value"></param>
/// <returns></returns>
private static string GetString( string value)
{
  string starNum = string .Empty;
  for ( int i = 0; i < value.Length; i++)
  {
   starNum += "*" ;
  }
  return starNum;
}

C#敏感词汇过滤(不是正则)相关推荐

  1. 优秀博客 --敏感词汇过滤

    2019独角兽企业重金招聘Python工程师标准>>> 敏感词汇过滤 http://www.cnblogs.com/chenssy/p/3751221.html#2966041 树上 ...

  2. 动态代理的分析以及利用动态代理模式进行敏感词汇过滤

    动态代理 增强对象的功能: 设计模式:一些通用的解决固定问题的方式 代理模式 概念: (1). 真实对象:被代理的对象 (2). 代理对象: (3). 代理模式:代理对象代理真实对象,达到增强真实对象 ...

  3. Java基于Socket实现聊天、群聊、敏感词汇过滤功能

    首先的话,这个代码主要是我很久以前写的,然后当时还有很多地方没有理解,现在再来看看这份代码,实在是觉得丑陋不堪,想改,但是是真的改都不好改了- 所以,写代码,规范真的很重要. 实现的功能: 用户私聊 ...

  4. 【敏感词汇过滤算法】基于DFA-前缀树的敏感词汇过滤算法(项目实用)

    在敏感词汇过滤这块,不同的算法所造成的性能差异是非常大的,选择一个合适的算法非常重要.因为以前做算法的时候做过类似前缀树的字符串匹配之类的算法,所以一开始就打算用前缀树做的,后面了解了一下DFA的相关 ...

  5. PHP敏感词汇过滤SDK(树形结构遍历命中违禁词)

    先介绍一下匹配敏感词原理吧,因为没有工具,画的很糙,有疑问直接联系我.(绿色箭头代表命中敏感词,灰色:未命中) base 确定有穷自动机(DFA)算法 比如说"可以"是敏感词,那么 ...

  6. Filter - 通过拦截器与动态代理实现敏感词汇过滤

    需求:将敏感词汇.txt文件中的词语过滤为 -> "***" 分析: 首先加载文档,将文档中的词汇纳入集合中备用,方便后期比对使用. 使用Proxy动态代理将request对 ...

  7. 敏感词汇过滤(不区分大小写)

    最近项目中,用户评论内容需要屏蔽敏感词汇,从网上总结以下方法,(不区分大小写,如想设置大小写敏感,可以把代码中content..toLowerCase()去掉).具体看代码: 1.读取敏感词汇文档 & ...

  8. 小程序敏感词汇过滤之输入什么都返OK

    1.post提交 2.post过去的数据编码为utf-8   注意:不仅仅是评论内容为utf-8,不然会导致你输入什么都返回ok $msg = json_encode(array('content'= ...

  9. JSP和敏感词汇过滤

    1.JSP 1.1 JSP概述 全称: Java Server Page      Java服务器页面,和Servlet一样,都是Sun公司提供的动态资源开发技术.兼容HTML,CSS,JavaScr ...

最新文章

  1. java-基础-强、软、弱、虚引用
  2. Google、Stanford导师带出的AI人才,是你吗?
  3. Redis中7种集合类型应用场景
  4. 复杂XML的解析及组装
  5. 数据库的两个好帮手:pagehack和pg_xlogdump
  6. 百度百科做起来也不难
  7. 执行命令行并等待完成
  8. Spring+Mybatis+SpringMVC后台与前台分页展示实例(附工程)(转)
  9. 修改Gravatar生成的默认头像
  10. android ListView刷新抢占屏幕焦点
  11. 头文件注释轻松搞—VS2013
  12. 易知大学“大数据挖掘与分析(Python)”免费学习平台
  13. QQ音乐、网易云音乐、虾米音乐们的音乐社区暗战
  14. 现代前端技术解析:前端三层结构与应用
  15. shiro的anon失效问题
  16. Oracle连接pg,pg连接oracle.sql
  17. 小米note2鸿蒙ROM,小米最新刷机包rom下载_奇兔rom市场
  18. android 跳转oppo应用中心_Android 遍历手机应用,跳转应用市场详情页面
  19. Shell攻关之正则表达式
  20. java-从菜鸟到大神

热门文章

  1. 2016-8-17晨型养成第二天
  2. python入门教材带视频_Python全套,从入门到进阶。视频,电子书
  3. Go语言中开启和退出协程
  4. antd mobile在微信公众号开发中使用笔记
  5. poi word表格系列操作
  6. bokeh与tornado结合的三种方式
  7. 可能是最好的设计模式入门教程——里氏替换原则
  8. 小镇故事介绍 这个世界很喧哗,有的时候只需要一个人静一静
  9. SEO个人整理全套学习资料
  10. python将图片表情包转化成字符