举个例子
 
 for(i=o,i<a.Length,i++)
 {
   int tag = 0;
   if(tag!=0)
     {if(a[i]符合某条件) 
      {
         把a[i]替换为别的;
         tag=1;
      }
     }
    else 不替换;
 }意思说明一下  并不是想把所有的符合条件的给替换
 

解决方案 »

  1.   

    楼主你写的逻辑有问题吧,有符合 if(tag!=0)条件的时候吗,这个条件好像永远都是假的哦
      

  2.   


                    string _sA = "3";
                    string _sB = "rhty65756";
                    Console.WriteLine(_sB);
                    // 只替换一次,6变3
                    int _iC = 1, _idx = -1;
                    if (_sB.Length > _iC)
                    {
                        for (int i = 0; i < _iC; i++)
                        {
                            _idx = _sB.IndexOf('6');
                            if (_idx != -1)
                            {
                                _sB = _sB.Remove(_idx, 1);
                                _sB = _sB.Insert(_idx, _sA);
                            }
                        }
                    }
                    Console.WriteLine(_sB);
      

  3.   


    当然,这里有个小bug,只要楼主把它改过来即可用!
      

  4.   

    http://www.dreamershop.com/info/n1001c7.aspx
    去这里看看。
    在.NET中,不调用C++/CLI,进行字符串替换有好几种方法:1、最常用的,就是String实例.Replace(),但这个不能忽略大小写。2、System.Text.Regex(Regular Expression正则表达式),大家都估计到它的效率不高,虽然它支持忽略大小写。3、String.SubString()循环,查找要替换的子字符串的位置,截取,然后字符串相加,大家也估计到,数量少(在codeproject.com上曾有文章讨论过和StringBuilder的临届值是600次)的情况下会比StringBuilder快。4、跟3一样,唯一区别就是字符累加用StringBuilder,数量少的情况下比字符累加要慢,但过了临届值就要快。5、引用Microsoft VisualBasic RunTime(Microsoft.VisualBasic.DLL),里面有一个Strings.Replace,效率非常高,其原理就是:Split()再Join(),其中Split支持忽略大小写的秘诀就是调用了System.Globalization.CultureInfo,也就是所谓的国际化,其实要实现字符串的替换代码量不多,但要兼容各种语言(非编程语言,是交流语言),那就得多花几倍的代码了。6、不想用VB运行库的朋友,可以用Reflector配合Denis Bauer's Reflector.FileDisassembler把Microsoft.VisualBasic.DLL中的Strings的Replace和相关函数抽取出来(C#),然后修补一下就可以单独使用了(我这明显是吃饱了撑着,VB专家装配脑袋指出我这是浪费时间,因为本身Microsoft VisualBasic运行库就包括在.NET Framework中)。
      

  5.   

    把 int tag = 0;  移到for循环外面去就OK了
      

  6.   

    Regex.Replace()
    这个比较简单
      

  7.   

    看楼主的代码,tag变量其实可以不要的,这里给出一个示例代码:
            string Replace(string source)
            {
                StringBuilder sb = new StringBuilder(source.Length);            int tag = 0;            for (int index = 0; index < source.Length; index++)
                {
                    if (source[index]符合某条件)
                    {
                        sb.Append(要替换source[index]的内容);
                    }
                    else
                    {
                        sb.Append(source[index];
                    }
                }            return sb.ToString();
            }