Как проверить, является ли String в Java допустимым URL - PullRequest
41 голосов
/ 14 октября 2010

Как я могу проверить, является ли строка URL-адресом в Java?

Ответы [ 7 ]

53 голосов
/ 14 октября 2010

Вы можете попытаться создать из него объект java.net.URL. Если это не правильный URL, будет выброшено MalformedURLException.

41 голосов
/ 14 октября 2010

Вы можете использовать UrlValidator из commons-validator .Это избавит вас от написания кода, в котором логический поток руководствуется кэшированием исключения, что обычно считается плохой практикой.В этом случае, однако, я думаю, что это нормально делать, как предлагали другие, если вы перенесете эту функцию в служебный метод с именем isValidUrl(..)

13 голосов
/ 17 декабря 2016

Для Android просто добавьте эту строку:

boolean isValid = URLUtil.isValidUrl( "your.uri" );
8 голосов
/ 21 декабря 2016

Вот, пожалуйста:

public static boolean isValidURL(String urlString)
{
    try
    {
        URL url = new URL(urlString);
        url.toURI();
        return true;
    } catch (Exception exception)
    {
        return false;
    }
}
8 голосов
/ 04 ноября 2015

Если вы программируете на Android , вы можете использовать android.webkit.URLUtil для тестирования.

URLUtil.isHttpUrl(url)
URLUtil.isHttpsUrl(url)

Надеюсь, это будет полезно.

8 голосов
/ 22 ноября 2012

Дополнение ответа Божо, чтобы перейти к более практичным:

  1. Загрузите apache commons package и распакуйте его.binaries
  2. Включите commons-validator-1.4.0.jar в путь сборки Java.
  3. Проверьте его с помощью этого примера кода ( ссылка ):

    //...your imports
    
    import org.apache.commons.validator.routines.*; // Import routines package!
    
    public static void main(String[] args){
    
    // Get an UrlValidator
    UrlValidator defaultValidator = new UrlValidator(); // default schemes
    if (defaultValidator.isValid("http://www.apache.org")) {
        System.out.println("valid");
    }
    if (!defaultValidator.isValid("http//www.oops.com")) {
        System.out.println("INvalid");
    }
    
    // Get an UrlValidator with custom schemes
    String[] customSchemes = { "sftp", "scp", "https" };
    UrlValidator customValidator = new UrlValidator(customSchemes);
    if (!customValidator.isValid("http://www.apache.org")) {
        System.out.println("valid");
    }
    
    // Get an UrlValidator that allows double slashes in the path
    UrlValidator doubleSlashValidator = new UrlValidator(UrlValidator.ALLOW_2_SLASHES);
    if (doubleSlashValidator.isValid("http://www.apache.org//projects")) {
        System.out.println("INvalid");
    }
    
  4. Выполнить / отладить

2 голосов
/ 26 ноября 2016

Эта функция проверяет URL и возвращает истину (действительный URL) или ложь (недействительный URL).

public static boolean isURL(String url) {
    try {
        new URL(url);
        return true;
    } catch (Exception e) {
        return false;
    }
}

Обязательно import java.net.URL;

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...