C#自定义字符串替换Replace方法实例
本文实例讲述了C#自定义字符串替换Replace方法。分享给大家供大家参考。具体实现方法如下:
一、问题:
前一阵遇到一个如标题的算法题,是将原有字符串的某些片段替换成指定的新字符串片段,例如将源字符串:abcdeabcdfbcdefg中的cde替换成12345,得到结果字符串:ab12345abcdfb12345fg,即:abcdeabcdfbcdefg->ab12345abcdfb12345fg。
二、实现方法:
显然不能用string.Replace方法,需要自定义一个方法stringReplace(stringoriginalString,stringstrToBeReplaced,stringstrToReplace),下面是我的实现代码,在半个小时内完成,通过了调试和常规数据的测试验证,还算是及格吧。
publicstaticstringReplace(stringoriginalString,stringstrToBeReplaced,stringstrToReplace) { stringresultString=null; char[]originalCharArray=originalString.ToCharArray(); char[]strToBeCharArray=strToBeReplaced.ToCharArray(); char[]strToCharArray=strToReplace.ToCharArray(); List<Char>newCharList=newList<Char>();
for(inti=0;i<originalCharArray.Count();i++) { if(originalCharArray[i]==strToBeCharArray[0]) { boolIsReplace=false; for(intj=0;j<strToBeCharArray.Count();j++) { if(((i+j)<originalCharArray.Count()) &&(originalCharArray[i+j]==strToBeCharArray[j])) { IsReplace=true; } else { IsReplace=false; break; } } if(IsReplace) { i+=strToBeCharArray.Count()-1; for(intk=0;k<strToCharArray.Count();k++) { newCharList.Add(strToCharArray[k]); } } else { newCharList.Add(originalCharArray[i]); } } else { newCharList.Add(originalCharArray[i]); } }
resultString=string.Join("",newCharList); returnresultString; }