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が必要です。

// 2 番目の//近くのwebだけが必要です。最初の//近くのwwwではありません。

これを行う方法?

4

7 に答える 7

3

2回目の交換を行うことができます

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

次のように、最後のスラッシュの 1 つを削除するだけです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 に答える