0

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

例如。xyz.com/path1/path2/path3/somefile.txt

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

我能想到的唯一选择是阅读到第一个正斜杠。

4

3 回答 3

4

您可以简单http://地为该字符串添加前缀并构造一个对象并使用该方法URL提取主机名。getHost()

String urlString = "xyz.com/path1/path2/path3/somefile.txt";
URL url = new URL("https://" + urlString);
System.out.println(url.getHost());
于 2013-02-19T06:53:52.487 回答
3

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

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

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

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

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

但是,如果您的输入中可能没有斜线,那么您最好使用 Quoi 的解决方案。

于 2013-02-19T06:56:27.550 回答
1

您可以使用String#splitregx - ' /'

String[] split = str.split("/");
System.out.println(split[0]);
于 2013-02-19T06:57:03.867 回答