0

我有字符串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

这该怎么做?

4

7 回答 7

3

您可以进行第二次替换

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

=)

于 2012-10-31T04:56:44.980 回答
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(@"//",@"/");
于 2012-10-31T04:59:27.767 回答
0
string test="http://www.test.com//web?testid=12"
string[] test2 = test.Split('//');

string test = test2[0] + "//" + test2[1] + "/" + test2[2];
于 2012-10-31T05:01:54.703 回答
0
Regex.Replace(test, "[^:]//", "/");
于 2012-10-31T05:02:38.747 回答
0

您也可以使用 stringbuilder 。

StringBuilder b =new StringBuilder();

b.Replace("/","//",int startindex,int count);

于 2012-10-31T05:05:49.503 回答
0

只需使用以下命令删除最后一个斜杠String.Remove()

string test="http://www.test.com//web?testid=12";
string output = test.Remove(test.LastIndexOf("//"), 1);
于 2012-10-31T05:07:16.077 回答
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);
于 2012-10-31T05:07:25.203 回答