从字符串中提取域名的最佳方法是什么?
EG。 xyz.com/path1/path2/path3/somefile.txt
由于没有协议,因此无法使用java.net.URL
。
我能想到的唯一选择就是先阅读正斜线。
答案 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]);