什麼是正確的做法?關於在C#中刪除字符串的問題
檢查是否存在,然後刪除?
var input = "foo #main baa";
if(input.Contains("#main")) {
input = input.Replace("#main", "");
}
或者只是:
input = input.Replace("#main", "");
好了,這似乎是一個簡單的問題,但我真的想知道。 在此先感謝。
什麼是正確的做法?關於在C#中刪除字符串的問題
檢查是否存在,然後刪除?
var input = "foo #main baa";
if(input.Contains("#main")) {
input = input.Replace("#main", "");
}
或者只是:
input = input.Replace("#main", "");
好了,這似乎是一個簡單的問題,但我真的想知道。 在此先感謝。
該Contains
檢查實際上只是讓您的代碼較慢。
刪除它。
Contains
調用需要遍歷字符串,直到找到#main
。
Replace
調用然後需要做相同的確切循環(它不能記住它從Contains
調用)。
這是一個Shlemiel the Painter's algorithm。
Replace
可以處理零次或多次出現搜索字符串的字符串,因此您不需要檢查。
只要做替換 - 如果它不在那裏,什麼都不應該發生。
只需致電Replace()
即可。如果沒有發現子字符串,則可以避免額外撥打Contains()
。
我這樣做:
input = input.Replace("#main", "").Replace(" "," ");
要刪除任何雙空格。
只要刪除它。唯一要檢查的是字符串是否爲空。