C#自定义字符串替换Replace方法实例

前端技术 2023/09/01 C#

本文实例讲述了C#自定义字符串替换Replace方法。分享给大家供大家参考。具体实现方法如下:

一、问题:

前一阵遇到一个如标题的算法题,是将原有字符串的某些片段替换成指定的新字符串片段,例如将源字符串:abcdeabcdfbcdefg中的cde替换成12345,得到结果字符串:ab12345abcdfb12345fg,即:abcdeabcdfbcdefg -> ab12345abcdfb12345fg。

二、实现方法:

显然不能用string.Replace方法,需要自定义一个方法 string Replace(string originalString, string strToBeReplaced, string strToReplace),下面是我的实现代码,在半个小时内完成,通过了调试和常规数据的测试验证,还算是及格吧。

复制代码 代码如下:

public static string Replace(string originalString, string strToBeReplaced, string strToReplace)
{
    string resultString = null;
    char[] originalCharArray = originalString.ToCharArray();
    char[] strToBeCharArray = strToBeReplaced.ToCharArray();
    char[] strToCharArray = strToReplace.ToCharArray();
    List<Char> newCharList = new List<Char>();

    for (int i = 0; i < originalCharArray.Count(); i++)
    {
 if (originalCharArray[i] == strToBeCharArray[0])
 {
     bool IsReplace = false;
     for (int j = 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 (int k = 0; k < strToCharArray.Count(); k++)
  {
      newCharList.Add(strToCharArray[k]);
  }
     }
     else
     {
  newCharList.Add(originalCharArray[i]);
     }
 }
 else
 {
     newCharList.Add(originalCharArray[i]);
 }
    }

    resultString = string.Join(\"\", newCharList);
    return resultString;
}

本文地址:https://www.stayed.cn/item/3082

转载请注明出处。

本站部分内容来源于网络,如侵犯到您的权益,请 联系我

我的博客

人生若只如初见,何事秋风悲画扇。