如何验证Java中的String是否是有效的URL

时间:2010-10-14 09:12:31

标签: java url

如何检查字符串是否是Java中的URL?

8 个答案:

答案 0 :(得分:54)

您可以尝试从中创建java.net.URL对象。如果它不是正确的网址,则会抛出MalformedURLException

答案 1 :(得分:39)

您可以使用UrlValidator中的commons-validator。它将使您免于编写通过缓存异常来引导逻辑流的代码,这通常被认为是一种不好的做法。但是,在这种情况下,如果您将此功能移至名为isValidUrl(..)

的实用程序方法,我认为按照其他人的建议做的很好

答案 2 :(得分:12)

对于 Android ,只需添加以下行:

<td class="leftMenu">
    <a href="#home">Home</a><br/>
    <a href="#courses">Courses</a><br />
    <a href="#students">Students</a><br />
</td>

答案 3 :(得分:9)

你走了:

df = rbind(c('1', '1', 'male', '45', '0', 'spouse', 'not applicable', 'not applicable'), 
        c('1', '2', 'female', '38', 'spouse', '0', 'not applicable', 'not applicable'), 
       c('2', '1', 'female', '18', '0', 'daughter', 'daughter', 'not applicable'), 
        c('2', '2', 'male', '50', 'parent', '0', 'spouse', 'not applicable'), 
        c('2', '3', 'female', '45', 'parent', 'spouse', '0', 'not applicable'), 
        c('3', '1', 'female', '45', '0', 'parent', 'parent', 'spouse'), 
        c('3', '2', 'male', '17', 'son', '0', 'brother', 'son'), 
        c('3', '3', 'male', '19', 'son', 'brother', '0', 'son'), 
        c('3', '4', 'male', '50', 'spouse', 'parent', 'parent', '0'))

df = as.data.frame(df)
colnames(df) = c('houseID', 'id', 'sex', 'age', 'relto1', 'relto2', 'relto3',  'relto4')

答案 4 :(得分:8)

补充Bozho的答案,更加实际:

  1. 下载apache commons package并解压缩它。 binaries
  2. 在java构建路径中包含commons-validator-1.4.0.jar。
  3. 使用此示例代码(reference)进行测试:

    //...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. 运行/调试

答案 5 :(得分:8)

如果您使用 Android 进行编程,则可以使用android.webkit.URLUtil进行测试。

URLUtil.isHttpUrl(url)
URLUtil.isHttpsUrl(url)

希望它会有所帮助。

答案 6 :(得分:2)

此函数验证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;

答案 7 :(得分:0)

^(https://|http://|ftp://|ftps://)(?!-.)[^\\s/\$.?#].[^\\s]*$

这是一个用于验证协议http,https,ftp和ftps的URL的正则表达式。