tri*_*ity 6 java url url-parsing tld
鉴于这种 :
URL u=new URL("someURL");
Run Code Online (Sandbox Code Playgroud)
如何识别URL的顶级域名..
番石榴为此提供了一个很好的实用程序。它的工作原理如下:
InternetDomainName.from("someurl.co.uk").publicSuffix()
会得到你co.uk
InternetDomainName.from("someurl.de").publicSuffix()
会得到你de
所以你只想拥有顶级域部分?
//parameter urlString: a String
//returns: a String representing the TLD of urlString, or null iff urlString is malformed
private String getTldString(String urlString) {
URL url = null;
String tldString = null;
try {
url = new URL(urlString);
String[] domainNameParts = url.getHost().split("\\.");
tldString = domainNameParts[domainNameParts.length-1];
}
catch (MalformedURLException e) {
}
return tldString;
}
Run Code Online (Sandbox Code Playgroud)
让我们来测试一下!
@Test
public void identifyLocale() {
String ukString = "http://www.amazon.co.uk/Harry-Potter-Sheet-Complete-Series/dp/0739086731";
logger.debug("ukString TLD: {}", getTldString(ukString));
String deString = "http://www.amazon.de/The-Essential-George-Gershwin/dp/B00008GEOT";
logger.debug("deString TLD: {}", getTldString(deString));
String ceShiString = "http://??.??";
logger.debug("ceShiString TLD: {}", getTldString(ceShiString));
String dokimeString = "http://??????????.??????";
logger.debug("dokimeString TLD: {}", getTldString(dokimeString));
String nullString = null;
logger.debug("nullString TLD: {}", getTldString(nullString));
String lolString = "lol, this is a malformed URL, amirite?!";
logger.debug("lolString TLD: {}", getTldString(lolString));
}
Run Code Online (Sandbox Code Playgroud)
输出:
ukString TLD: uk
deString TLD: de
ceShiString TLD: ??
dokimeString TLD: ??????
nullString TLD: null
lolString TLD: null
Run Code Online (Sandbox Code Playgroud)
使用URL#getHost()
并在必要时使用String#split()
on "\\."
。
更新:如果您实际上有一个IP地址作为主机,那么您需要独立使用InetAddress#getHostName()
。
归档时间: |
|
查看次数: |
8941 次 |
最近记录: |