如何有效地删除一部分字符串

时间:2011-02-17 10:43:10

标签: c# .net

有一个像A = B& C = D& E = F的字符串,如何删除C = D部分并得到像A = B& E = F的字符串?

6 个答案:

答案 0 :(得分:34)

要么将其替换掉:

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 :(得分: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"

答案 2 :(得分:2)

我认为你需要提供一个更清晰的例子,以确保它适合这种情况,但是这样的事情应该这样做:

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

这样的东西应该有用,而且应该是非常动态的

答案 3 :(得分:1)

你可以分割()和手动连接(取决于数据的样子)或者使用string.Replace(,string.empty)

答案 4 :(得分:1)

将其拆分在&分隔符上,通过某种机制排除C=D部分,然后加入其余两个? String类提供了您需要的方法,包括拆分,连接和子串匹配。

答案 5 :(得分:0)

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

输出:A = B& E = F