0

URL https://xyz.com/abc/.../xyz/name_partがあります。これを、 https: //xyz.com/abc/.../xyz である名前空間 URIと、URL の name_part である名前部分の 2 つの部分に効率的に分割したいと考えています。Javaでこれを行う最良の方法は何ですか? 名前空間 URI は固定されておらず、動的になる可能性があることに注意してください。乾杯

4

4 に答える 4

5

私の知る限り、JDK の URL クラスはあなたのニーズに応えることができます。

URL url = new URL("https://test:password@localhost:7001/context/document?key1=val1&key2=val2");

gettersすべての URL クラスをチェックします。それらのいくつかは次のとおりです。

url.getProtocol();
url.getUserInfo();
url.getHost();
url.getPort();
url.getPath();
url.getQuery();
于 2013-05-25T05:25:42.503 に答える
2

これで効率が問題になる可能性はほとんどありません。最も理解しやすいものを探してください。

String url = "https://xyz.com/abc/.../xyz/name_part";
int separator = url.lastIndexOf('/');
String namespacePart = url.substring(0, separator);
String namePart = url.substring(separator + 1);

または多分:

String url = "https://xyz.com/abc/.../xyz/name_part";
String[] pathSegments = URI.create(url).getPath().split("/");
String namePart = pathSegments[pathSegments.length - 1];
String namespacePart = url.replaceAll("/" + namePart + "$", "");

あなたにとって最も自然に見えるものに応じて。

于 2013-05-25T07:13:15.747 に答える
1

URL クラスを使用すると、URL が関連するすべての部分に分割されます: http://docs.oracle.com/javase/7/docs/api/java/net/URL.html

http://docs.oracle.com/javase/7/docs/api/java/net/URL.html#URL(java.lang.String)

于 2013-05-25T05:25:02.543 に答える