1

假设我有一个 URL http://example.com/files/public_files/test.zip,我想提取最后一个子路径test.zip,我怎么能做到这一点?

我来自 Python,所以我对 Java 和学习仍然很陌生。在 Python 中,您可以执行以下操作:

>>> x = "http://example.com/files/public_files/test.zip"
>>> x.split("/")[-1]
'test.zip'
4

4 回答 4

5

有很多方法。我更喜欢:

String url = "http://example.com/files/public_files/test.zip";
String fileName = url.substring(url.lastIndexOf("/") + 1);
于 2013-07-02T20:41:37.850 回答
1

使用 String 类方法是一种方法。但鉴于您有一个 URL,您可以使用java.net.URL.getFile()

String url = "http://example.com/files/public_files/test.zip";
String filePart = new URL(url).getFile();

上面的代码将为您提供完整的路径。要获取文件名,您可以使用Apache Commons - FilenameUtils.getName()

String url = "http://example.com/files/public_files/test.zip";
String fileName = FilenameUtils.getName(url);

好吧,如果您不想为此任务引用 3rd 方库,String 类仍然是一个选择。我刚刚给出了另一种方法。

于 2013-07-02T20:42:30.897 回答
0

与python语法最相似的是:

String url = "http://example.com/files/public_files/test.zip";
String [] tokens = url.split("/");
String file = tokens[tokens.length-1];

Java 缺少 Python 所具有的方便的 [-n] nth to last 选择器。如果您想在一行中完成所有操作,则必须执行以下粗暴的操作:

String file = url.split("/")[url.split("/").length-1];

我不推荐后者

于 2013-07-02T20:43:16.383 回答
0

您可以使用以下内容:

String url = "http://example.com/files/public_files/test.zip";
String arr[] = url.split("/");
String name = arr[arr.length - 1];
于 2013-07-02T20:42:51.323 回答