什么是正确的?
检查是否存在,然后删除?
var input = "foo #main baa";
if(input.Contains("#main")) {
input = input.Replace("#main", "");
}
或只是:
input = input.Replace("#main", "");
嗯,这似乎是一个简单的问题,但我真的很想知道。 提前谢谢。
答案 0 :(得分:4)
只做替换 - 如果不存在,则不会发生任何事情。
答案 1 :(得分:4)
Contains
检查实际上只是让您的代码更慢
删除它。
Contains
调用需要遍历字符串,直到找到#main
然后,Replace
调用需要执行完全相同的循环(它无法从Contains
调用中记住它。)
这是Shlemiel the Painter's algorithm。
Replace
可以处理搜索字符串出现次数为零或更多的字符串,因此您不需要检查。
答案 2 :(得分:1)
只需拨打Replace()
。如果未找到子字符串,则不会发生任何事情,您可以避免再次调用Contains()
。
答案 3 :(得分:0)
我会这样做:
input = input.Replace("#main", "").Replace(" "," ");
删除任何双重空格。
答案 4 :(得分:0)
删除它。唯一要检查的是字符串是否为空。