如何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答案,更加实用:

  1. 下载apache commons 包并解压缩。 二进制
  2. 在java构建路径中包含commons-validator-1.4.0.jar。
  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. 运行/调试

对于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;