2015-08-24 30 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"