各位大侠,帮帮忙哈。
    我定义了N个关键字,N1,N2,N3....
 想用for循环每次读出来替换他们,就是在传进来的文章内   若读完了N1,后,紧接着替换下一个关键字,
  例如,,他还有,周末玩去吧!红色是关键字,等文章检查完输出后就是*和*,他还有*,周末玩去吧!
   这要怎么弄啊,,谢谢了,,快忘光了,,好像用到了stringbuffer还是stringbulder呢,,给点源码吧。

解决方案 »

  1.   

    string.Format("{0}和{1},他还有{2},周末玩去吧!","我","你","她");
      

  2.   

    字符串不太长的话,直接:
    string s="我和你,他还有她,周末玩去吧!"
    string[] keywords=new String(){N1,N2,N3};
    for(int i=0;i<keywords.Length;i++)
        s=s.Replace(keywords[i],"*");
    Response.Write(s);
      

  3.   


    字符串太长的话
    new StringBuilder().AppendFormat("{0}和{1},他还有{2},周末玩去吧!","我","你","她");
      

  4.   

    [color=#FF0000大侠唉,我是想把一个整个帖子内容给传进来,然后在帖子内容中查找,这个怎么做呢,,][/color]
      

  5.   


                string str = "我和你,他还有她,周末玩去吧!";
                Console.WriteLine(Regex.Replace(str,"[你我她]","*"));
      

  6.   


    StringBuilder sb=new StringBuilder();
    sb.AppendFormat("{0}和{1},他还有{2},周末玩去吧!","我","你","她");
    sb.AppendFormat("{0}和{1},他还有{2},周末玩去吧!","我","你","她");
    sb.AppendFormat("{0}和{1},他还有{2},周末玩去吧!","我","你","她");
    sb.AppendFormat("{0}和{1},他还有{2},周末玩去吧!","我","你","她");
    sb.AppendFormat("{0}和{1},他还有{2},周末玩去吧!","我","你","她");
    sb.AppendFormat("{0}和{1},他还有{2},周末玩去吧!","我","你","她");
    sb.AppendFormat("{0}和{1},他还有{2},周末玩去吧!","我","你","她");
    Response.write(sb.ToString());
      

  7.   

    StringBuilder sb=new StringBuilder()就是用这个了至少可以提升效率呀
      

  8.   

    字符串,regex.replace就可替换相关字符串
      

  9.   

    下面有个类似的例子:
    内容页超连接关键词的完美实现 http://blog.csdn.net/yyixin/archive/2009/07/26/4380877.aspx<% @ Page Language = " C# " AutoEventWireup = " true " CodeFile = " ArticleAdd.aspx.cs " Inherits = " ArticleAdd " validateRequest = " false " %><! DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" >< html xmlns ="http://www.w3.org/1999/xhtml" >
    < head runat ="server" >
        < title > 无标题页 </ title >
    </ head >
    < body >
        < form id ="form1" runat ="server" >
        < div >
            关 键 词:
            < br />< asp:TextBox ID ="TextBox2" runat ="server" Rows ="5" width ="400" TextMode ="MultiLine" Text ="春江|海平|明月" ></ asp:TextBox >
            < br />
            相应连接:
            < br />< asp:TextBox ID ="TextBox3" runat ="server" Rows ="5" width ="400" TextMode ="MultiLine" Text ="http://www.jtwq.com/a.aspx|http://www.jtwq.com/b.aspx|http://www.jtwq.com/c.aspx" ></ asp:TextBox >
            < br />
            内容输入:
            < br />< asp:TextBox ID ="TextBox1" runat ="server"   Rows ="5" width ="400" TextMode ="MultiLine" Text ="春江潮水连海平,海上明月共潮声。滟滟随波千万里,何处春江无月明。" ></ asp:TextBox >
            < br />
            < asp:Button ID ="Button1" runat ="server" Text ="Button" OnClick ="Button1_Click" />
        </ div >
        </ form >
    </ body >
    </ html >using System;
    using System.Data;
    using System.Configuration;
    using System.Collections;
    using System.Web;
    using System.Web.Security;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Web.UI.WebControls.WebParts;
    using System.Web.UI.HtmlControls;
    using System.Text.RegularExpressions;public partial class ArticleAdd : System.Web.UI.Page
    {
        protected void Page_Load( object sender, EventArgs e) { } protected void Button1_Click( object sender, EventArgs e)
        {
            string v = TextBox1.Text;        Response.Write(StrInArray(v));    }    private string StrInArray( string v)
        {
           
            // 关键词与URL可以从数据库中读取,这里直接赋值
            string vKey = " 春江|海平|明月 " ; // 关键词
            string vHref = " http://www.jtwq.com/a.aspx|http://www.jtwq.com/b.aspx|http://www.jtwq.com/c.aspx " ; // 相应的链接
            string [] arr1 = vKey.Split( new char [ 1 ] { ' | ' });
            string [] arr2 = vHref.Split( new char [ 1 ] { ' | ' });        string Reg = @" <(a|pre)\b(?:(?!</?\1).)*</\1> " ; // 此正则参考了“lxcnn”的写法
            MatchCollection mc = Regex.Matches(v, Reg, RegexOptions.IgnoreCase);
            string [] MatchVale = new string [mc.Count];
            int i = 0 ;
            foreach (Match m in mc)
            {
                MatchVale[i ++ ] = m.Groups[ 0 ].Value.ToLower().Trim();
                v = v.Replace(m.Groups[ 0 ].Value.ToLower().Trim(), " tmpStr " + (i - 1 ));
            }        for ( int ii = 0 ; ii < arr1.Length; ii ++ )
            {
               v = v.Replace(arr1[ii], " <a href=\" " + arr2[ii] + " \"> " + arr1[ii] + " </a> " );
            }        for ( int iii = 0 ; iii < MatchVale.Length; iii ++ )
            {
                v = v.Replace( " tmpStr " + iii, MatchVale[iii]);
            }        return v;
        }
       
      

  10.   

    http://blog.csdn.net/xianfajushi/archive/2009/11/08/4787050.aspx
      

  11.   

    http://topic.csdn.net/u/20090604/17/B3DA6A6E-F2AB-43CA-95EF-9AC592E6226C.html
      

  12.   

    假设你存放文章的变量是:string arctic = "文章内容...";
    又假设你要替换掉的关键词是:string[] keywords = {"N1","N2","N3"...};
    那么,高效的替换方式是:
            string arctic = "文章内容...";
            string[] keywords = { "N1", "N2", "N3" };        StringBuilder arcticBuffer = new StringBuilder(arctic);
            foreach (string keyword in keywords)
            {
                arcticBuffer = arcticBuffer.Replace(keyword, "*");
            }        string result = arcticBuffer.ToString();