如何validationJava中的String是否是有效的URL
如何检查字符串是否是Java中的URL?
您可以尝试从中创建一个java.net.URL
对象。 如果它不是正确的URL,则抛出MalformedURLException
。
您可以使用commons-validator中的 UrlValidator
。 它将使您免于编写通过缓存exception来引导逻辑流的代码,这通常被认为是一种不好的做法。 但是,在这种情况下,如果将此function移动到名为isValidUrl(..)
的实用程序方法,我认为可以像其他人建议的那样做isValidUrl(..)
如果你在Android中编程,你可以使用android.webkit.URLUtil
进行测试。
URLUtil.isHttpUrl(url) URLUtil.isHttpsUrl(url)
希望它会有所帮助。
补充Bozho答案,更加实用:
- 下载apache commons 包并解压缩。
- 在java构建路径中包含commons-validator-1.4.0.jar。
-
使用此示例代码进行测试( 参考 ):
//...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"); }
-
运行/调试
对于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; } }
对于Spring Framework用户。 有: org.springframework.util.ResourceUtils#isUrl
例如
ResourceUtils.isUrl("https://stackoverflow.com/");
此函数validationURL,并返回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;
- Ajax Session Time Out FullAjaxExceptionHandlerFactory无法使用shiro
- 如何用ANT重命名n个文件? (批量工作)
- 如何为java junit测试运行jetty服务器
- 使用Hadoop分布式缓存时出现FileNotFoundException
- 如何使用便携式JRE打包可执行jar?
- LambdaMetafactory的Java访问bean方法
- 使用NetBeans GUI构建器使用Java MVC方法进行编程
- 将System.in重定向到swing组件
- 在BlackBerry sim上使用“; deviceside = true”执行browserfield时出现问题