我正在开发一个Java应用程序,我想从URL中使用java提取确切的域名。在Java中如何从URL中提取确切的域名
我有域名就像:
helloword.com
developer.mydomain.com
developer.ourdomain.co.in
wowdomain .co.in
输出应该是这样的:
的HelloWorld
MYDOMAIN
ourdomain
wowdomain
我正在开发一个Java应用程序,我想从URL中使用java提取确切的域名。在Java中如何从URL中提取确切的域名
我有域名就像:
helloword.com
developer.mydomain.com
developer.ourdomain.co.in
wowdomain .co.in
输出应该是这样的:
的HelloWorld
MYDOMAIN
ourdomain
wowdomain
我找到了正确的解决方案
这里:http://docs.guava-libraries.googlecode.com/git/javadoc/com/google/common/net/InternetDomainName.html
这里是例子的代码在java中
import com.google.common.net.InternetDomainName;
public class splitDomain {
public static void main(String[] args) {
// Split URL into protocol, domain, port and URI
// here i am just extracting .com, .net, co.in letter on you can subtract this from your url and u will get exact url
InternetDomainName it = InternetDomainName.from("www.vinay.com");
System.out.println(it.publicSuffix().name());
it = InternetDomainName.from("www.vinay.co.in");
System.out.println(it.publicSuffix().name());
it = InternetDomainName.from("www.vinay.co.uk");
System.out.println(it.publicSuffix().name());
//for subdomain
String url = "firstsubdomain.developer.vinay.co.in";
url = InternetDomainName.from(url).topPrivateDomain().name();
it = InternetDomainName.from(url);
String domainname = it.publicSuffix().name();
System.out.println(domainname);
String temp = url.replaceAll("."+domainname, "");
System.out.println(temp);
}
}
我假设扩展即com,.in。我等他们来了,在第三或第二位置
String data[] = domainName.split("\\.");
String domainLabel="";
if(data.length==3 || data.length==4){
domainLabel =data[1];
}
else if(data.length==2){
domainLabel =data[0];
}
另一种方法是让所有extensions..Split的阵列的字符串,其中的一次找到EXTENSION
数据数组... data[--index]
会工作
扩展可能是.com或.co.in或.co.uk或.in –
是的,它会工作.. –
@VinayPandya ..现在它.. .. –
int i = 0, y=0;
boolean check = false;
String line = "**developer.ourdomain.co.in**";
if (line.contains("developer")){
i = line.indexOf("developer");
i += "developer".length()+1;
y = i;
check = true;
}
while(line.charAt(i++) != '.');
if (check)
System.out.println("**"+line.substring(y, i-1) + "**");
else
System.out.println(line.substring(y, i-1) + "**");
和这个域名? ** developer.ourdomain.co.in ** ** wowdomain.co.in ** –
等一下,我会编辑,对不起... – RadijatoR
请看我的问题中的例子,如果你得到像这样的确切答案而不是让我知道在这里 –
public class CheckClient {
public static void main(String args[]) throws IOException {
String domain="www.facebook.com";
String host = domain
.replaceAll("http://|https://|www.|ws://|wss://","")
.replaceAll("/.*","")
.split(".com")[0];
System.out.println(host);
}
}
如果你给"www.facebook.com"
那么答案将是"facebook"
。
这是一个必要条件,而不是一个问题。你有什么尝试? –
我已经尝试了java的URL类,但它不帮我 –
可能重复的[从给定的URL获取域名](http://stackoverflow.com/questions/9607903/get-domain-name-from-given-url ) – andyb