1

私は 1 年間プログラミングをしており、string何度も操作を行ってきましたが、それが実際にどのように機能するか、またはどのように行うのが最善の方法かを理解していませんでした。

この文字列があるとしましょう

String abc = "https://uu2020.devuueva.com/portal/mesddsa/usforeer/nance/tings/M3C102d4104/1007/tingjack/default.aspx";

この部分だけにしたい

"https://uu2020.devuueva.com/portal/mesddsa/usforeer/nance/tings/M3C102d4104"

文字/名前は変更可能で動的ですが、「/」はそうではありません。誰かがそれを行う最も簡単で最良の方法を示すことができますか.

4

2 に答える 2

5

ここで留意すべきことの 1 つは、Uri を扱っている場合はUri、ソリューションを一緒にストリング マッシュするよりも、クラスを使用して情報を抽出する方がよいということです。

http://msdn.microsoft.com/en-us/library/system.uri.aspx

例えば:

var part = String.Format("{0}://{1}{2}",uri.Scheme,uri.Authority, String.Join("",uri.Segments.Take(7)));

目的のセクションを取得します。実際の例: http://rextester.com/JRWKOG58567


編集

いくつかの追加の要件とフレームワークの制限を発見したので、結局のところ、これを文字列マッシングしたほうがよいかもしれませんが、それでもUriクラスからいくつかの機能を活用できます。

var input = "https://uu2020.devuueva.com/portal/mesddsa/usforeer/nance/tings/M3C102d4104/1007/tingjack/default.aspx";
var uri = new Uri(input);
StringBuilder sb = new StringBuilder();
sb.AppendFormat("{0}://{1}/",uri.Scheme,uri.Authority);

var parts = uri.PathAndQuery.Split(new char[]{'/'},StringSplitOptions.RemoveEmptyEntries);
for(var i=0;i<6;i++){
    sb.AppendFormat("/{0}",parts[i])   ;
}
Console.WriteLine(sb.ToString());

実際の例: http://rextester.com/HBK80648

于 2012-07-31T08:43:14.013 に答える
2
 var t="https://uu2020.devuueva.com/portal/mesddsa/usforeer/nance/tings/M3C102d4104/1007/tingjack/default.aspx";
     string[] g= t.Split('/');
     var h=String.Join("/", g.Where((i,n)=>n<9).ToArray());
    Console.write( h);

結果 :https://uu2020.devuueva.com/portal/mesddsa/usforeer/nance/tings/M3C102d4104

于 2012-07-31T08:45:58.790 に答える