Java:字符串操作。获取URL中的最后一个子路径

时间:2013-07-02 20:39:56

标签: java string split substring

假设我有一个网址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 个答案:

答案 0 :(得分:5)

有很多方法。我更喜欢:

String url = "http://example.com/files/public_files/test.zip";
String fileName = url.substring(url.lastIndexOf("/") + 1);

答案 1 :(得分:1)

使用String类方法是一种方法。但鉴于您有网址,您可以使用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);

好吧,如果你不想为这个任务引用第三方库,那么仍然可以选择String类。我只是采用了另一种方式。

答案 2 :(得分:0)

您可以使用以下内容:

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

答案 3 :(得分:0)

与python语法最相似的是:

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

Java缺乏方便的[-n] nth到Python的最后一个选择器。如果你想在一行中完成所有这些,你必须做这样的事情:

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

我不推荐后者