从字符串中提取域名的最佳方法是什么?
例如。xyz.com/path1/path2/path3/somefile.txt
由于没有协议,无法使用java.net.URL
.
我能想到的唯一选择是阅读到第一个正斜杠。
您可以简单http://
地为该字符串添加前缀并构造一个对象并使用该方法URL
提取主机名。getHost()
String urlString = "xyz.com/path1/path2/path3/somefile.txt";
URL url = new URL("https://" + urlString);
System.out.println(url.getHost());
假设永远不会有 http:// 来添加额外的斜杠,你可以这样做:
String domain = urlString.substring(0, urlString.indexOf("/"));
这将为您提供一个直到第一个斜杠的子字符串。
编辑:正如所指出的,如果没有斜杠,这将失败。你可以像这样解决这个问题:
int index = urlString.indexOf("/");
if(index >= 0) String domain = urlString.substring(0, index);
但是,如果您的输入中可能没有斜线,那么您最好使用 Quoi 的解决方案。
您可以使用String#split
regx - ' /
'
String[] split = str.split("/");
System.out.println(split[0]);