假设我有一个网址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'
答案 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];
我不推荐后者