2011-02-17 34 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

相关问题