举个例子
for(i=o,i<a.Length,i++)
{
int tag = 0;
if(tag!=0)
{if(a[i]符合某条件)
{
把a[i]替换为别的;
tag=1;
}
}
else 不替换;
}意思说明一下 并不是想把所有的符合条件的给替换
for(i=o,i<a.Length,i++)
{
int tag = 0;
if(tag!=0)
{if(a[i]符合某条件)
{
把a[i]替换为别的;
tag=1;
}
}
else 不替换;
}意思说明一下 并不是想把所有的符合条件的给替换
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);
当然,这里有个小bug,只要楼主把它改过来即可用!
去这里看看。
在.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中)。
这个比较简单
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();
}