4

考虑网址是

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

我想要的只是以下

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

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

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

4

3 回答 3

8

您可以使用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/
于 2013-09-23T16:15:04.820 回答
1

最简单的使用 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
于 2013-09-23T16:53:21.400 回答
1

使用以下任何一个都相同

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 并使用上述任一方法。

于 2013-09-23T16:29:02.180 回答