2015-08-24 38 views
1

我正在开发一个Java应用程序,我想从URL中使用java提取确切的域名。在Java中如何从URL中提取确切的域名

我有域名就像:

helloword.com

developer.mydomain.com

developer.ourdomain.co.in

wowdomain .co.in

输出应该是这样的:

的HelloWorld

MYDOMAIN

ourdomain

wowdomain

+2

这是一个必要条件,而不是一个问题。你有什么尝试? –

+0

我已经尝试了java的URL类,但它不帮我 –

+0

可能重复的[从给定的URL获取域名](http://stackoverflow.com/questions/9607903/get-domain-name-from-given-url ) – andyb

回答

1

我找到了正确的解决方案

这里: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); 

    } 



} 
0

我假设扩展即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]会工作

+0

扩展可能是.com或.co.in或.co.uk或.in –

+0

是的,它会工作.. –

+0

@VinayPandya ..现在它.. .. –

0
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) + "**"); 
+0

和这个域名? ** developer.ourdomain.co.in ** ** wowdomain.co.in ** –

+0

等一下,我会编辑,对不起... – RadijatoR

+0

请看我的问题中的例子,如果你得到像这样的确切答案而不是让我知道在这里 –

0
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"