java - 如何检查 url 中是否存在协议(protocol)?

标签 java protocols

如何检查 URL 中是否存在协议(protocol),如果不存在则需要附加它。 是否有任何类可以在 Java 中实现这一点? 例如:字符串 URL = www.google.com

需要得到http://www.google.com

最佳答案

只需使用 String.startsWith("http://") 来检查。

public String ensure_has_protocol(final String a_url)
{
    if (!a_url.startsWith("http://"))
    {
        return "http://" + a_url;
    }
    return a_url;
}

编辑:

另一种方法是使用 java.net.URL 实例,如果 URL 不包含(合法的)协议(protocol),其构造函数将抛出 java.net.MalformedURLException (或因任何其他原因无效):

public URL make_url(final String a_url) throws MalformedURLException
{
    try
    {
        return new URL(a_url);
    }
    catch (final MalformedURLException e)
    {
    }
    return new URL("http://" + a_url);
}

您可以使用 URL.toString() 获取 URL 的字符串表示形式。这是对 startsWith() 方法的改进,因为它保证返回 URL 有效。

关于java - 如何检查 url 中是否存在协议(protocol)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9363134/

相关文章:

java - 设置 Ignite 计算网格的 RAM 大小

java - 将 JSON 字符串解码为 Java 对象的最佳方法?

java - 使用 Spring JdbcTemplate 选择数据的最佳实践

swift - 使用带有自定义参数的协议(protocol)函数

node.js - 如何让多个 Node.js 命令行进程相互通信?

java - 延迟异常

java - 使用 JDBC 从 MySQL 数据库中提取数据时如何避免丢失标点符号?

ios - Swift 协议(protocol)如何声明为通用一致性

android - 通过 WiFi 在 Windows 和 Android 之间共享文件

java - 如何在 POP3 协议(protocol)上创建新文件夹