考虑网址是
http://www.google.com/a/b/myendpoint
我想要的只是以下
http://www.google.com/a/b/
一种方法是拆分String url并加入除最后一个组件之外的所有组件。
我在想是否有更好的方法?
答案 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