string.replace不适合我

时间:2014-06-25 07:46:25

标签: c# asp.net string

我有这段代码:

string encodedKeywordsQueryValue = HttpUtility.UrlEncode(HttpContext.Current.Request.QueryString["keywords"]);
query = query.Replace(HttpContext.Current.Request.QueryString["keywords"], encodedKeywordsQueryValue);

,其中

HttpContext.Current.Request.QueryString["keywords"] = "abc& abc"

encodedKeywordsQueryValue=abc%26+abc

我的旧字符串值未被新字符串替换。

有人可以建议我这样做吗?我尝试过删除和插入字符串方法的组合,但没有得到理想的结果。

请帮助我。

2 个答案:

答案 0 :(得分:0)

你应该在替换的左侧有一个确切的字符串。它并不像“喜欢”那样行事。见下面的例子:

string str1 = "abc";
string str2 = "abc&def";
str2.replace("d", str1);

结果将是:

abc&abcef

希望有所帮助

答案 1 :(得分:0)

  

HttpContext.Current.Request.QueryString ["关键字"] ="&ABC放大器; ABC"和   encodedKeywordsQueryValue = ABC%26 + ABC

阅读replace方法的文档会告诉你它不知道URL编码而且不关心 - 它是一个字符串方法。因此,处理未编码的字符串。没有类似的风格行为 - 这是一个精确的匹配和替换"。

我建议你对这种行为进行单元测试,然后计算出你希望它如何 - 然后你可以在这里做一个以某种方式基线有用的帖子,因为它有一个确切的例子,其中行为不起作用,不是我们要解决的谜团。