2015-10-01 16 views
5

Tôi đã thiết lập các url bây giờ tôi muốn lọc chúng ra trên cơ sở của các tên miền web (nói wikipedia url). Ngay bây giờ những gì tôi đang làm là thiết lập lặp lại và cho mỗi url tôi chỉ tìm một từ khóa của địa chỉ web đó.Làm cách nào để lọc URL trên cơ sở miền web?

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

có kỹ thuật nào khác hiệu quả hơn cách tiếp cận hiện tại của tôi không?

+0

Điều gì sẽ gây rối với cách này? Có vẻ ok với tôi –

+1

@RahulTripathi không hiệu quả, bởi vì nó không hoạt động trong URL: www.somesite.com/index.html?id=wikipedia.org – viartemev

+1

@viartemev có bạn đúng, url đôi khi cũng chứa chuỗi trên cơ sở mà tôi đang cố gắng lọc ra. –

Trả lời

2

Bạn có thể sử dụng này:

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

bạn đang cố gắng làm gì với: domain.startsWith ("www.")? domain.substring (4): tên miền; –

+1

@aniketsiva đôi khi getHost trở lại www.somehost.org thay vì somehost.org. Và mã này luôn trả về somehost.org – viartemev

+0

nhất! rất hữu ích, cảm ơn –

0

câu trả lời Viartemev là tốt nếu bạn cần phải nhận được miền đầy đủ (ví dụ someinfo.wikipedia.org) Nếu bạn muốn nhận được chỉ miền cấp cao nhất (ví dụ như wikipedia.org) sau đó .contains() là cách tiếp cận tốt nhất

if(url.contains("wikipedia.org")){ 
    domain = wikipedia.org" 
} 
Các vấn đề liên quan