2015-10-01 18 views
5

Mam teraz zestaw adresów URL, chcę je odfiltrować na podstawie domen internetowych (np. Adresy URL Wikipedii). Właśnie teraz robię zestaw iteracyjny i dla każdego adresu URL znajduję tylko słowo kluczowe o tym adresie.Jak filtrować URL na podstawie domeny internetowej?

if(ur.contains("wikipedia.org")){ 
    //do something 
} 

Czy istnieje inna technika, która jest bardziej wydajna niż moje obecne podejście?

+0

Co jest w ten sposób? Wydaje mi się ok –

+1

@RahulTripathi nie jest wydajny, ponieważ nie działa w adresie URL: www.somesite.com/index.html?id=wikipedia.org – viartemev

+1

@viartemev Tak, masz rację, adres URL czasami zawiera również ciąg znaków na podstawie które próbuję odfiltrować. –

Odpowiedz

2

Można to wykorzystać:

if("wikipedia.org".equals(getDomainName(ur))){ 
    //do something 
} 

public static String getDomainName(String url) throws URISyntaxException { 
    URI uri = new URI(url); 
    String domain = uri.getHost(); 
    return domain.startsWith("www.") ? domain.substring(4) : domain; 
} 
+1

co próbujesz zrobić z: domain.startsWith ("www.")? domain.substring (4): domain; –

+1

@aniketsiva sometime getHost return www.somehost.org zamiast somehost.org. A ten kod zawsze zwraca somehost.org – viartemev

+0

najlepiej! bardzo pomocne, dzięki –

0

odpowiedź Viartemev jest dobre, jeśli chcesz poznać pełną domenę (np someinfo.wikipedia.org) Jeśli chcesz uzyskać tylko domenę najwyższego poziomu (np wikipedia.org) następnie .contains() jest najlepszym podejściem

if(url.contains("wikipedia.org")){ 
    domain = wikipedia.org" 
} 
Powiązane problemy