Java字符串从URL地址截断

时间:2014-04-03 12:02:13

标签: java string split substring

我有一个URL地址,如:http://myfile.com/File1/beauty.png
我必须从主字符串中删除http://site address/ 这意味着结果应为File1/beauty.png

注意:网站地址可能是任何内容(例如some.com,some.org)

4 个答案:

答案 0 :(得分:3)

见这里:http://docs.oracle.com/javase/tutorial/networking/urls/urlInfo.html

只需从字符串中创建一个URL对象,并使用URL.getPath(),如下所示:

String s = new URL("http://myfile.com/File1/beauty.png").getPath();

如果您在开头不需要斜杠,可以通过s.substring(1, s.length());

将其删除

编辑,根据评论:

如果您不允许使用网址,这将是您最好的选择:Extract main domain name from a given url

查看接受的答案。基本上你必须得到一个TLD列表,找到域并减去所有域名,直到域名为止。端。

答案 1 :(得分:2)

如果如您所说,您只想使用标准String方法,那么应该这样做。

public static String getPath(String url){
        if(url.contains("://")){
            url = url.substring(url.indexOf("://")+3);
            url = url.substring(url.indexOf("/") + 1);
        } else {
            url = url.substring(url.indexOf("/")+1);
        }
        return url;
    }

如果网址包含://,那么我们知道您要查找的字符串将在第三个/之后。否则,它应该在第一个之后。如果我们执行以下操作;

System.out.println(getPath("http://myfile.com/File1/beauty.png"));
System.out.println(getPath("https://myfile.com/File1/beauty.png"));
System.out.println(getPath("www1.myfile.com/File1/beauty.png"));
System.out.println(getPath("myfile.co.uk/File1/beauty.png"));;

输出是;

File1/beauty.png
File1/beauty.png
File1/beauty.png
File1/beauty.png

答案 2 :(得分:0)

您可以使用以下方法获取所需数据。

    String url = "http://myfile.org/File1/beauty.png";
    URL u = new URL(url);
    String[] arr = url.split(u.getAuthority());

    System.out.println(arr[1]);

    Output - /File1/beauty.png

答案 3 :(得分:-1)

String s = "http://www.freegreatpicture.com/files/146/26189-abstract-color-background.jpg";
s = s.substring(s.indexOf("/", str.indexOf("/") + 1));