字符串操作复杂性

fdg*_*dfg 1 c# asp.net string .net-2.0

我已经编程了一年而且我已经string多次进行了操作,但从未理解它是如何工作的,或者是最好的方法.

假设我有这个字符串

String abc = "https://uu2020.devuueva.com/portal/mesddsa/usforeer/nance/tings/M3C102d4104/1007/tingjack/default.aspx";
Run Code Online (Sandbox Code Playgroud)

我只希望这部分

"https://uu2020.devuueva.com/portal/mesddsa/usforeer/nance/tings/M3C102d4104"
Run Code Online (Sandbox Code Playgroud)

字符/名称可以更改并且是动态的,但"/"不是.有人可以展示最简单,最好的方法.

Jam*_*iec 5

在这里要记住的一件事是,如果你正在处理一个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)));
Run Code Online (Sandbox Code Playgroud)

获取你想要的部分.实例: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());
Run Code Online (Sandbox Code Playgroud)

实例:http://rextester.com/HBK80648