如何用C#替换字符串?

时间:2012-10-31 04:52:47

标签: c# asp.net

我有字符串string test="http://www.test.com//web?testid=12"

我需要将字符串 // 替换为 /

问题是,如果我使用string a=test.replace("//","/")我使用单斜杠(/)获得 http:/www.test.com/web?testid = 12 ,但我需要 http :?//www.test.com/web testid = 12

我只需要第二个 // 附近的网络,而不是 www 附近的 //

怎么做?

7 个答案:

答案 0 :(得分:3)

您可以进行第二次替换

string test="http://www.test.com//web?testid=12";
string a=test.Replace("//","/").Replace("http:/","http://");

=)

答案 1 :(得分:1)

string test = @"http://www.test.com//web?testid=12";
test = test.Substring(0, test.LastIndexOf(@"//") - 1) 
       + test.Substring(test.LastIndexOf(@"//")).Replace(@"//", @"/");

或者因为它是Uri,你可以这样做:

Uri uri = new Uri(test);
string newTest = uri.Scheme + @"//" + uri.Authority 
                                    + uri.PathAndQuery.Replace(@"//",@"/");

答案 2 :(得分:0)

string test="http://www.test.com//web?testid=12"
string[] test2 = test.Split('//');

string test = test2[0] + "//" + test2[1] + "/" + test2[2];

答案 3 :(得分:0)

Regex.Replace(test, "[^:]//", "/");

答案 4 :(得分:0)

你也可以使用stringbuilder。

StringBuilder b = new StringBuilder();

b.Replace(“/”,“//”,int startindex,int count);

答案 5 :(得分:0)

只需使用String.Remove()删除最后一个斜杠:

string test="http://www.test.com//web?testid=12";
string output = test.Remove(test.LastIndexOf("//"), 1);

答案 6 :(得分:0)

var http = "http://someurl//data";
var splitindex = http.IndexOf("/") + 1;
var res = http.Substring(splitindex+1, (http.Length-1) - splitindex).Replace("//","/");
http = "http://" + res;

或者

StringBuilder strBlder = new StringBuilder();
strBlder.Append("http://someurl//data");
//use the previously used variable splitindex
strBlder.Replace("//", "/", splitindex + 1, (http.Length) - splitindex);