考虑网址是
http://www.google.com/a/b/myendpoint
我想要的只是以下
http://www.google.com/a/b/
一种方法是拆分字符串 url 并加入除最后一个之外的所有组件。
我在想是否有更好的方法?
考虑网址是
http://www.google.com/a/b/myendpoint
我想要的只是以下
http://www.google.com/a/b/
一种方法是拆分字符串 url 并加入除最后一个之外的所有组件。
我在想是否有更好的方法?
您可以使用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/
最简单的使用 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
使用以下任何一个都相同
pathofURL = url.subString(0, url.lastIndexOf('/') + 1);
或者 如果它没有查询
pathofURL = url.getProtocol() + "://" + url.getAuthority() + url.getPath();
pathofURL = pathofURL.subString(0, pathofURL.lastIndexOf('/') + 1);
它只有 Query
pathofURL = url.getProtocol() + "://" + url.getAuthority() + url.getPath();
它有查询和参考
pathofURL = url.getProtocol() + "://" + url.getAuthority() + url.getFile();
希望对您有所帮助,请检查 URL 并使用上述任一方法。