public static StringDS Replace(StringDS s, StringDS t, StringDS r) {
int tLen = t.GetLength();//要被替换的字符窜长度
int index=s.IndexOf(t);//要被替换的索引起始位置
char[] newData1 = new char[index+1];//s字符串的前部分
char[] newData2 = new char[r.GetLength()];//被替换部分
char[] newData3 = new char[s.GetLength()-index-tLen];//s字符串的后部分
char[] newData = new char[newData1.Length+newData2.Length+newData3.Length];//接收最后字符串
if (s.GetLength() >= t.GetLength() && s.IndexOf(t)>=0)//s定位t字符串返回值不为-1
{//newData1,newData2,newData3分别赋值
for (int i = 0; i < index; i++)
{
newData1[i] = s[i];
}
for (int i = 0; i < r.GetLength(); i++)
{
newData2[i] = r[i];
}
for (int i = index+tLen; i < s.GetLength(); i++)
{
newData3[i-index-tLen] = s[i];
}
//newData接收3个分解数组
for (int i = 0; i < newData1.Length; i++)
{
newData[i] = newData1[i];
}
for (int i = newData1.Length; i < newData2.Length+ newData1.Length; i++)
{
newData[i-1] = newData2[i-newData1.Length];
}
for (int i = newData1.Length+newData2.Length; i < newData.Length; i++)
{
newData[i-1] = newData3[i-newData1.Length-newData2.Length];
}
return new StringDS(newData);//返回最后的字符串
}
else
{
return new StringDS("字符串超出s的范围");
}
}
串的替换操作:已知串 s、t、r,用 r 替换 s 中出现的所有与 t 相等的子串。写出算法,方法名为 Replace。
最新推荐文章于 2023-08-25 07:33:38 发布