我正在尝试从字符串中获取扩展名(dk,com,org,eu)或任何其他域扩展名。
例如:
http://www.example.com/siteone/sitetwo/currentpage
从这个字符串我想得到.com
我可以采用非常混乱的方式来做subString,但是当网址看起来像这样时会出现问题:
dk.webpage.otherstuff.com/page
那么我将如何以一种不需要我检查每一步的方式来解决这个问题
答案 0 :(得分:1)
使用像这样的getHost()方法:
public static String getDomainName(String testUrl) throws URISyntaxException {
URI fullUri = new URI(testUrl);
String domainName = fullUri.getHost();
return domainName.startsWith("www.") ? domainName.substring(4) : domainName;
}
完成后,只需将subString用于域名的.com部分。
答案 1 :(得分:1)
试试这个:
String ext = url.replaceAll(".*//[^/]*(\\.\\w+)/.*", "$1");
一些测试代码:
String url = "http://www.example.com/siteone/sitetwo/currentpage";
String ext = url.replaceAll(".*//[^/]*(\\.\\w+)/.*", "$1");
System.out.println(ext);
输出:
.com
答案 2 :(得分:1)
使用Guava的InternetDomainName课程。具体来看看publicSuffix
方法。
答案 3 :(得分:0)
试试这个:
private String getExtensionFromDomain(String domainName){
int p = domainName.lastIndexOf(".") +1;
return domainName.substring(p);
}
在example.co.ma的情况下,这将输出:.ma