实现字符串替换功能
本文关键字:功能 替换 字符串 实现 | 更新日期: 2023-09-27 18:33:27
我正在尝试实现字符串替换功能,但是我能够使用字符替换(下面的代码)。对于字符串替换,我查找了Microsoft参考源,其中包含以下注释。虽然我查找了字符串生成器代码,但我无法很好地理解它,而且我迷路了。
<小时 />这篇文章的创建是为了找出替换函数的实现,而不是盲目地使用 string.replace()。这是一个面试问题来实现替换功能。
此方法包含与 StringBuilder Rereplace 相同的功能。唯一的区别是必须分配一个新的字符串,因为字符串是不可变的
这是我对字符替换的
public string StringReplaceUtil(string str, char find, char replace)
{
char[] ch = new char[str.Length];
int j=0;
ch = str.ToCharArray();
for (int i = 0; i < ch.Length; i++)
{
if (ch[i] == find)
ch[j] = replace;
else
ch[j] = ch[i];
j++;
}
return new string(ch).Substring(0,j);
}
我不确定你为什么不使用string.replace()函数。这将完全完成您尝试执行的操作,而无需实现任何新代码。
string line = "This is a test string"
string find = "a"
string replace = "an awesome"
console.write(line.replace(find, replace))
返回:
"This is an awesome test string"
代码中的错误是你不需要单独的j索引,只需一直使用i。尽管正如其他人指出的那样 - 无论如何都不要这样做。
char[] ch = str.ToCharArray();
for (int i = 0; i < ch.Length; i++)
{
if (ch[i] == find)
ch[i] = replace;
}
如果要用字符串而不是字符替换,则需要更复杂的代码