string url = "www.google.com/?filter=xpto";
string domain = url.Contains('?')
? url.Substring(0, url.IndexOf('?'));
: url;
有没有更简单的方法来做这个而不必重写Substring方法?
答案 0 :(得分:2)
您可以编写自己的扩展方法:
public static string GetDomain(this string url)
{
return url.Contains('?')
? url.Substring(0, url.IndexOf('?'));
: url;
}
用法:
string domain = url.GetDomain();
答案 1 :(得分:1)
如果使用Uri
s,也不应使用字符串方法。由于你的uri有些格式错误(例如,它不包含协议),因此提取域名有点困难:
string url = "www.google.com/?filter=xpto";
if (!url.Contains("://")) url = "http://" + url; // presume HTTP
string domain = url;
string host = url;
Uri uri;
if (Uri.TryCreate(url, UriKind.RelativeOrAbsolute, out uri))
{
domain = uri.GetLeftPart(UriPartial.Authority); // http://www.google.com
host = uri.Host; // www.google.com, without protocol or port
}
答案 2 :(得分:0)
为什么不使用Uri课呢?
var url = new Uri("http://www.google.com/?filter=xpto");
var domain = url.Host;
Console.WriteLine(domain);