Brzmi prawdopodobnie chcesz użyć URL zamiast URI (co jest bardziej ogólne i potrzebuje do czynienia z mniej ścisłym składni.)
URI a = new URI("http://www.foo.com");
URI b = new URI("bar.html");
URI c = a.resolve(b);
c.toString() -> "http://www.foo.combar.html"
c.getAuthority() -> "www.foo.com"
c.getPath() -> "bar.html"
URI toString() nie zachowuje się jak można się spodziewać , ale biorąc pod uwagę jego ogólny charakter, być może należy mu wybaczyć.
Niestety metoda toURL() URI nie zachowuje się tak, jak bym chciała dać ci to, co chcesz.
URL u = c.toURL();
u.toString() -> "http://www.foo.combar.html"
u.getAuthority() -> "www.foo.combar.html" --- Oh dear :(
więc najlepiej po prostu zacząć prosto z adresem URL, aby uzyskać to, co chcesz:
URL x = new URL("http://www.foo.com");
URL y = new URL(x, "bar.html");
y.toString() -> "http://www.foo.com/bar.html"
Co było wyjście pan spodziewa? –
"http://www.foo.com/bar.html" byłby w porządku. – Cpa
Dlaczego używasz dwóch identyfikatorów URI? Musi być jakiś powód, ale nie jest to jasne. –