Как проверить, является ли строка URL-адресом в Java?
Как проверить, является ли строка в Java допустимым URL-адресом
Ответ 1
Вы можете попытаться создать объект java.net.URL
. Если это не правильный URL-адрес, будет выбрано MalformedURLException
.
Ответ 2
Вы можете использовать UrlValidator
из commons-validator. Это избавит вас от написания кода, в котором логический поток управляется кешированием исключения, которое обычно считается плохой практикой. В этом случае, однако, я думаю, что это нормально делать, как предложили другие, если вы переместите эту функцию на метод утилиты под названием isValidUrl(..)
Ответ 3
Если вы программируете на Android, вы можете использовать android.webkit.URLUtil
для тестирования.
URLUtil.isHttpUrl(url)
URLUtil.isHttpsUrl(url)
Надеюсь, это будет полезно.
Ответ 4
Для Android просто добавьте эту строку:
boolean isValid = URLUtil.isValidUrl( "your.uri" );
Ответ 5
Дополняя ответ Божо, перейдем на более практичный
- Загрузите пакет Apache Commons и распакуйте его.
- Включите commons-validator-1.4.0.jar в путь сборки Java.
-
Проверьте это с помощью этого примера кода (ссылка):
//...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"); }
-
Run/Debug
Ответ 6
Здесь вы идете:
public static boolean isValidURL(String urlString)
{
try
{
URL url = new URL(urlString);
url.toURI();
return true;
} catch (Exception exception)
{
return false;
}
}
Ответ 7
Для пользователей Spring Framework. Существует: org.springframework.util.ResourceUtils#isUrl
Например,
ResourceUtils.isUrl("https://stackoverflow.com/");
Ответ 8
Эта функция проверяет URL-адрес и возвращает true (действительный URL-адрес) или false (неверный URL-адрес).
public static boolean isURL(String url) {
try {
new URL(url);
return true;
} catch (Exception e) {
return false;
}
}
Обязательно import java.net.URL;