Как я могу проверить, является ли строка URL-адресом в Java?
Вы можете попытаться создать из него объект java.net.URL. Если это не правильный URL, будет выброшено MalformedURLException.
java.net.URL
MalformedURLException
Вы можете использовать UrlValidator из commons-validator .Это избавит вас от написания кода, в котором логический поток руководствуется кэшированием исключения, что обычно считается плохой практикой.В этом случае, однако, я думаю, что это нормально делать, как предлагали другие, если вы перенесете эту функцию в служебный метод с именем isValidUrl(..)
UrlValidator
isValidUrl(..)
Для Android просто добавьте эту строку:
boolean isValid = URLUtil.isValidUrl( "your.uri" );
Вот, пожалуйста:
public static boolean isValidURL(String urlString) { try { URL url = new URL(urlString); url.toURI(); return true; } catch (Exception exception) { return false; } }
Если вы программируете на Android , вы можете использовать android.webkit.URLUtil для тестирования.
android.webkit.URLUtil
URLUtil.isHttpUrl(url) URLUtil.isHttpsUrl(url)
Надеюсь, это будет полезно.
Дополнение ответа Божо, чтобы перейти к более практичным:
Проверьте его с помощью этого примера кода ( ссылка ):
//...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"); }
Выполнить / отладить
Эта функция проверяет URL и возвращает истину (действительный URL) или ложь (недействительный URL).
public static boolean isURL(String url) { try { new URL(url); return true; } catch (Exception e) { return false; } }
Обязательно import java.net.URL;
import java.net.URL;