假设我有一个 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'
有很多方法。我更喜欢:
String url = "http://example.com/files/public_files/test.zip";
String fileName = url.substring(url.lastIndexOf("/") + 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 类仍然是一个选择。我刚刚给出了另一种方法。
与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];
我不推荐后者
您可以使用以下内容:
String url = "http://example.com/files/public_files/test.zip";
String arr[] = url.split("/");
String name = arr[arr.length - 1];