手机版 | 登陆 | 注册 | 留言 | 设首页 | 加收藏
当前位置: 网站首页 > 电脑程序 > 编程技巧 > C# > 文章 当前位置: C# > 文章

C# 怎么过滤关键字

时间:2018-10-06    点击: 次    来源:网络    作者:佚名 - 小 + 大

方法一:

这个方法比较简单,就是进行内容的遍历来匹配过滤的字符,代码如下:

  /// <summary>
  /// 过滤关键字
  /// </summary>
  /// <param name="strContent">待过滤的内容。</param>
  /// <param name="strKeyWord">要过滤的关键字。</param>
  /// <param name="strNewString">要过滤的关键字的替换字符串。</param>
  /// <returns>返回检查后的内容。</returns>
  private string FilterKeyWord(string strContent,string strKeyWord,string strNewString)
  {
   for(int i=0;i<=(strContent.Length-strKeyWord.Length);i++)
   {
    // 找到匹配顶。
    if(strContent.Substring(i,strKeyWord.Length).ToUpper()==strKeyWord.ToUpper())
    {
     strContent=strContent.Substring(0,i)+strNewString+strContent.Substring(i+strKeyWord.Length);
    }
   }
   return strContent;
  }

该方法将会用指定的新字符串替换掉内容中的指定关键字。
虽然可以实现关键字的过滤,但因为要遍历一遍,所以效率不是很高。


第二种方法:

  /// <summary>
  /// 过滤关键字
  /// </summary>
  /// <param name="strContent">待过滤的内容。</param>
  /// <param name="strKeyWord">要过滤的关键字。</param>
  /// <param name="strNewString">要过滤的关键字的替换字符串。</param>
  /// <returns>返回过滤后的内容。</returns>
  public static StringBuilder FilterKeyWord(StringBuilder strContent,string strKeyWord,string strNewString)
  {
   string ExpressionString=null;
   // 创建要构造正则表达式的字符串。
   for(int i=0;i<strKeyWord.Length;i++)
   {
    ExpressionString+="("+strKeyWord.Substring(i,1).ToUpper()+"|"+strKeyWord.Substring(i,1).ToLower()+")";
   }

   // 构造要匹配的正则表达式。
   Regex Expression=new Regex(ExpressionString);

   // 在要过滤的内容中查寻匹配。
   Match match=Expression.Match(strContent.ToString(),0,strContent.Length);
   
   // 替换匹配的内容,直到匹配失败。
   while(match.Success)
   {
    // 替换当前匹配的内容。
    strContent=strContent.Replace(match.Value,strNewString);

    // 继续查寻下一次的匹配。
    match=match.NextMatch();
   }
   return strContent;
  }

这是用正则表达式来进行匹配,效率相对而言要高了一点点。

而且用了StringBuilder类,在内存空间上要占用得相对少一些。

上一篇:C#怎样判断一个输入的字符串是数值型?

下一篇:C# WinForm程序完全退出的问题解决

免责声明 | 联系我们 | 关于我们
蜀ICP备17040878号-1  |   QQ:57758813  |  地址:成都市新都区  |  电话:12345678910  |  
Copyright © 2020 天人文章管理系统 版权所有,授权www.yshwang.cn使用 Powered by 55TR.COM