从字符串中提取域

时间:2013-02-19 06:47:14

标签: java dns extract

从字符串中提取域名的最佳方法是什么?

EG。 xyz.com/path1/path2/path3/somefile.txt

由于没有协议,因此无法使用java.net.URL

我能想到的唯一选择就是先阅读正斜线。

3 个答案:

答案 0 :(得分:4)

您只需在http://前加上该字符串,然后构造URL对象,并使用getHost()方法提取主机名。

String urlString = "xyz.com/path1/path2/path3/somefile.txt";
URL url = new URL("https://" + urlString);
System.out.println(url.getHost());

答案 1 :(得分:3)

假设永远不会有http://添加额外的斜杠,你可以这样做:

String domain = urlString.substring(0, urlString.indexOf("/"));

这将为您提供第一个斜杠的子字符串。

编辑: 正如所指出的,如果没有斜杠,这将失败。你可以解决这个问题:

int index = urlString.indexOf("/");
if(index >= 0) String domain = urlString.substring(0, index);

但如果您的输入中没有斜线,那么使用Quoi的解决方案真的会更好。

答案 2 :(得分:1)

您可以将String#split与regx - '/'

一起使用
String[] split = str.split("/");
System.out.println(split[0]);