我有字符串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 附近的 // 。
怎么做?
答案 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);