我有一个像http://hostname:port_no/control/login.jsp
这样的网址。
我有上面的网址存储在一些String.Now中,我需要从字符串中提取hostname
。
我在Java代码中就是这样做的
String domain = url.substring(url.indexOf('/') + 2, url.lastIndexOf(':'));
我想知道是否有更好的方法来做同样的事情。
发布于 2014-04-15 17:17:15
您可以使用java.net.URI
-class从字符串中提取主机名。
下面是一个方法,你可以从一个字符串中提取你的主机名。
public String getHostName(String url) {
URI uri = new URI(url);
String hostname = uri.getHost();
// to provide faultproof result, check if not null then return only hostname, without www.
if (hostname != null) {
return hostname.startsWith("www.") ? hostname.substring(4) : hostname;
}
return hostname;
}
上面给出的是主机名,如果你的主机名是以hostname.com/...
或www.hostname.com/...
开头的,它将返回' hostname‘,这是完全正确的。
如果给定的url
无效(未定义的主机名),则返回null。
发布于 2014-04-15 17:13:26
java.net.URL aURL;
try {
aURL = new java.net.URL("http://example.com:80/docs/");
System.out.println("host = " + aURL.getHost()); //example.com
} catch (MalformedURLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
发布于 2014-04-15 17:12:08
java.net.URL u = new URL("http://hostname:port_no/control/login.jsp");
System.err.println(u.getHost());
https://stackoverflow.com/questions/23079197
复制相似问题