我有一个URL地址,如:http://myfile.com/File1/beauty.png
我必须从主字符串中删除http://site address/
这意味着结果应为File1/beauty.png
注意:网站地址可能是任何内容(例如some.com,some.org)
答案 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));