我需要从字符串中删除所有出现的子字符串。我可以使用Remove()
or Replace()
,哪个更好?
问问题
2361 次
4 回答
7
我需要从字符串中删除所有出现的子字符串。
鉴于您需要删除所有出现的情况,Replace
肯定会是一个更好的选择。 Remove
将需要多次调用,每次都找到位置(传递适当的索引和长度以删除),这意味着您将创建许多临时字符串。这将需要更多的工作,并在垃圾收集器上投入额外的工作来清理您生成的临时字符串。
于 2013-09-16T20:33:24.120 回答
2
Remove
不会删除特定子字符串的所有实例(当然,除非您先完成查找所有索引的工作)。只Replace
会这样做。
于 2013-09-16T20:32:23.663 回答
0
remove 需要获取要删除的字符串的索引,并且每次只删除一次,而 replace 只需要知道要替换的字符串,因此在编写它时 Replace 更简单:
string foo = "bar";
string result;
result = foo.Remove(foo.IndexOf("a"));//you will have to repeat that for each instance
或者
string foo = "bar";
string result;
result = foo.Replace("a","");
于 2013-09-16T20:34:11.953 回答
0
Replace() 用于替换所有出现的字符串。Remove() 可以被认为是一个向后的 Substring(),您可以在其中丢弃传递的字符串并保留其余部分。
于 2013-09-16T20:34:22.180 回答