gpt4 book ai didi

java - 不进行字符串分割的 URL 解析

转载 作者:行者123 更新时间:2023-12-01 07:21:01 26 4
gpt4 key购买 nike

Java 有很酷的 URL 解析器

import java.net.*;
import java.io.*;

public class ParseURL {
public static void main(String[] args) throws Exception {

URL aURL = new URL("http://example.com:80/docs/books/tutorial"
+ "/index.html?name=networking#DOWNLOADING");

System.out.println("path = " + aURL.getPath());
}
}

这是程序显示的输出:

path = /docs/books/tutorial/index.html

我只想看这部分:docs/books/tutorial(或/docs/books/tutorial/)猜测不使用字符串分割,我我正在为这项任务寻找其他更好的解决方案。

提前谢谢

最佳答案

有几种方法。其中之一是使用 URI#resolve("."),其中 . 代表当前目录。所以你的代码可以是这样的:

URI uri = new URI("http://example.com:80/docs/books/tutorial"
+ "/index.html?name=networking#DOWNLOADING");
System.out.println(uri.resolve(".").getPath());

输出:/docs/books/tutorial/

<小时/>

其他方式可能涉及文件系统和处理它的类,例如 File 或其在 Java 7 Path 中引入的改进版本(及其实用程序类 Paths)。
这些类应该允许您解析path

/docs/books/tutorial/index.html

并获取其父位置/docs/books/tutorial

URL aURL = new URL("http://example.com:80/docs/books/tutorial"
+ "/index.html?name=networking#DOWNLOADING");

String path = aURL.getPath();
String parent = Paths.get(path).getParent().toString();

System.out.println(parent);// \docs\books\tutorial

(小警告:根据您的操作系统,您可能会得到用 \ 分隔的路径,而不是 /)

关于java - 不进行字符串分割的 URL 解析,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37879417/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com