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