Java:除最后一部分外,获取整个URL的最简单方法是什么?

时间:2013-09-23 16:14:01

标签: java

考虑网址是

http://www.google.com/a/b/myendpoint

我想要的只是以下

http://www.google.com/a/b/

一种方法是拆分String url并加入除最后一个组件之外的所有组件。

我在想是否有更好的方法?

3 个答案:

答案 0 :(得分:9)

您可以使用lastIndexOf()

url.substring(0, url.lastIndexOf('/') + 1)

String url = "http://www.google.com/a/b/myendpoint";
System.out.println(url.substring(0, url.lastIndexOf('/') + 1));
http://www.google.com/a/b/

答案 1 :(得分:1)

使用以下任何一种都是相同的

pathofURL = url.subString(0, url.lastIndexOf('/') + 1);

如果没有查询

pathofURL = url.getProtocol() + "://" + url.getAuthority() + url.getPath();
pathofURL = pathofURL.subString(0, pathofURL.lastIndexOf('/') + 1);

它只有查询

pathofURL = url.getProtocol() + "://" + url.getAuthority() + url.getPath();

它有查询和参考

pathofURL = url.getProtocol() + "://" + url.getAuthority() + url.getFile();

希望它有所帮助,检查URL并使用上述任一方法。

答案 2 :(得分:0)

最简单的方法是使用URI.resolve方法:url.toURI().resolve("").toURL()(您可以立即开始使用URI。)

URL url = new URL("http://www.google/intl/eo/index.html");
URL url2 = url.toURI().resolve("favicon.ico").toURL(); // Or "" for the question.
System.out.println("url2: " + url2.toExternalForm());

// url2: http://www.google/intl/eo/favicon.ico