2011-02-17 33 views
14

有一個字符串如A = B & C = D & E = F,如何去除C = D部分並得到字符串A = B & E = F?如何有效去除部分字符串

+1

更具體:對輸入字符串進行哪些假設以及哪些規則確定要刪除的部分。 只是這個例子會給你一些無用的建議,比如「不要刪除任何東西並使用一個常量字符串」而是「A = B&E = F」。 – 2011-02-17 10:51:32

回答

30

要麼只是替換掉:

input.Replace("&C=D", ""); 

或使用該解決方案的一個組成你前面的問題,從數據結構刪除它,加入它重新走到一起。

使用我的代碼:

var input = "A=B&C=D&E=F"; 
var output = input 
       .Split(new string[] {"&"}, StringSplitOptions.RemoveEmptyEntries) 
       .Select(s => s.Split('=', 2)) 
       .ToDictionary(d => d[0], d => d[1]); 

output.Remove("C"); 
output.Select(kvp => kvp.Key + "=" + kvp.Value) 
     .Aggregate("", (s, t) => s + t + "&").TrimRight("&"); 
1

您可以拆分()和手動加入(具體取決於數據的樣子)或simly使用與string.replace(,的String.Empty)

1

拆分它的&分離,排除C=D部分由一些機制,然後加入剩下的兩個? String類提供了你需要的方法,包括分割,連接和子串匹配。

2

我認爲你需要給出一個清晰的例子,以確保它的東西的情況,但這樣的事情應該這樣做:

var testString = "A=B&C=D&E=F" 
var stringArray = testString.Split('&'); 
stringArray.Remove("C=D"); 
var output = String.Join("&", stringArray); 

喜歡的東西應該工作,應該是相當動態的

3
using System.Web; // for HttpUtility 

NameValueCollection values = HttpUtility.ParseQueryString("A=B&C=D&E=F"); 
values.Remove("C"); 
values.ToString(); // "A=B&E=F" 
+4

它看起來像是關於URL參數的問題,所以我喜歡你指向HttpUtility – Wilka 2011-02-17 11:21:43

0
string xyz = "A=B&C=D&E=F"; 
string output = xyz.Replace("&C=D",""); 

輸出:A = B & E = F

相關問題