Scala:URL重写(例如../../someurl)

Flo*_*lin 1 string scala

我有两个类型的URL:

val url = "../../a/b/c.html"

val parentURL = "http://www.someurl.com/section1/section2/section3.html"

我想要做的是产生一个结果字符串如下:

val resultingString = "http://www.someurl.com/section1/a/b/c.html"

我可以在第一个URL中计算".."的出现次数,但是我不知道如何使用它来按照我想要的方式对子URL进行"子串".

有帮助吗?

Rea*_*onk 6

处理URL对各种异常都很混乱.我建议使用JVM提供的方法来处理这个问题.

val parsed = new java.net.URL(parentURL)
new URL(
  parsed.getProtocol,
  parsed.getHost,
  parsed.getPort,
  java.nio.file.Paths.get(parsed.getFile, url).normalize.toString)
Run Code Online (Sandbox Code Playgroud)