2010-10-24 180 views
0

如何刪除字符串中的所有匹配子字符串?例如,如果我有20 40 30 30 30 30,那麼我只有20 40 30(而不是其他30)。我使用正則表達式嗎?如果是這樣,怎麼樣?C#替換字符串中的匹配子字符串

回答

9

如果這些「子字符串」全部用空格分開,您可以將其拆分,然後採用不同的項目並重新創建字符串。

var str = "20 40 30 30 30 30"; 
var distinctstr = String.Join(" ", str.Split().Distinct()); 
+0

+1。比我一直這樣做要容易得多。遠遠落在後面......儘管Linq已經存在了一段時間,但我對Linq並沒有做太多的工作,所以我從來沒有聽過Enumerable.Distinct()方法。謝謝! – David 2010-10-24 04:16:55

+0

是的,它們被空格隔開。此外,我不知道Distinct()方法,感謝信息! – david 2010-10-24 04:18:14

+0

@David Stratton:儘可能經常玩LINQ。而且它不一定要只寫查詢。像這樣的事情一樣好。它有助於使集合的工作變得更加簡單。我會說,首先在任何地方都可以使用它,直到您可以很好地使用LINQ來思考代碼。然後,當你瞭解其能力的極限時,你就會知道它是什麼,對它沒有用處。 – 2010-10-24 06:51:17

2

我想給你的問題的正確答案是使用替換功能:

string newString = oldString.Replace("30", ""); 

string newString = orldString.Replace(" 30", ""); 

擺脫空白..的,

編輯只是重讀...我的錯誤。抱歉。沒有意識到你想保留一個'30'。