如何在Java中将字符串转换为URL?

26
以下是我的Java代码。我写了url=URL(s);,但这并不正确。我想进行强制类型转换操作,将用户输入的字符串转换为URL。我应该如何进行此操作?是否有任何方法可以实现?
    public static void main(String[] args) {
    System.out.println("Welcome to Download Manager");
    URL url;
    String s;
    Scanner scan= new Scanner(System.in);
    s=scan.nextLine();
    url=URL(s);
    Download download=new Download(url);
}

3
不需要进行投射。您可以使用它来创建一个新的URL。 - Sotirios Delimanolis
user url = new URL(s); 替代 - Anton
@ntf 不需要这样做。你可以获取一个String并使用该String构建一个新的URL - Sotirios Delimanolis
1
您忘记了 new 关键字。 - Lone nebula
@arajek 我只想从用户那里获取一个URL。 - ntf
显示剩余5条评论
5个回答

45

你无法将String强制转换为URL,因为String不是URL的子类。你可以创建URL的新实例,将String作为参数传递给构造函数。在Java中,你总是使用关键字new调用构造函数:

URL url = new URL(string);

在Java 20中,使用URL构造函数已被弃用。最佳实践(长期以来)是使用uri.toURL(),正如ofskyMohsen所述。 - rmuller

10

7

您应该首先将字符串转换为 URI,然后再将 URI 转换为 URL

例如:

String str = "http://google.com";
URI uri = new URI(str);
URL url = uri.toURL();

请注意,有2个未处理的异常; 因此,您应该在上述代码中包装2个try / catch语句。

唯一正确的答案。但请注意,str必须进行编码! - rmuller

7
使用URL构造函数。
public static void main(String[] args) {
        System.out.println("Welcome to Download Manager");
        URL url;
        String s;
        Scanner scan= new Scanner(System.in);
        s=scan.nextLine();
        url= new URL(s);
        Download download=new Download(url);
    }

4

你需要将其更改为 url = new URL(s);


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接