我有字符串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。
我只需要第二个//附近的web,而不是第一个//靠近www。
这该怎么做?
您可以进行第二次替换
string test="http://www.test.com//web?testid=12";
string a=test.Replace("//","/").Replace("http:/","http://");
=)
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(@"//",@"/");
string test="http://www.test.com//web?testid=12"
string[] test2 = test.Split('//');
string test = test2[0] + "//" + test2[1] + "/" + test2[2];
Regex.Replace(test, "[^:]//", "/");
您也可以使用 stringbuilder 。
StringBuilder b =new StringBuilder();
b.Replace("/","//",int startindex,int count);
只需使用以下命令删除最后一个斜杠String.Remove()
:
string test="http://www.test.com//web?testid=12";
string output = test.Remove(test.LastIndexOf("//"), 1);
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);