2011-10-23 50 views
1

什麼是正確的做法?關於在C#中刪除字符串的問題

檢查是否存在,然後刪除?

var input = "foo #main baa"; 
if(input.Contains("#main")) { 
    input = input.Replace("#main", ""); 
} 

或者只是:

input = input.Replace("#main", ""); 

好了,這似乎是一個簡單的問題,但我真的想知道。 在此先感謝。

回答

4

Contains檢查實際上只是讓您的代碼較慢
刪除它。

Contains調用需要遍歷字符串,直到找到#main
Replace調用然後需要做相同的確切循環(它不能記住它從Contains調用)。
這是一個Shlemiel the Painter's algorithm

Replace可以處理零次或多次出現搜索字符串的字符串,因此您不需要檢查。

4

只要做替換 - 如果它不在那裏,什麼都不應該發生。

1

只需致電Replace()即可。如果沒有發現子字符串,則可以避免額外撥打Contains()

0

我這樣做:

input = input.Replace("#main", "").Replace(" "," "); 

要刪除任何雙空格。

0

只要刪除它。唯一要檢查的是字符串是否爲空。