我正在開發一個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