我有以下字符串,其文件路径如下:
/Users/Fabian/Desktop/R5X5.mps
我现在想要知道文件名的含义 - 从右侧到'/'的所有内容。
在这种情况下:R5X5.mps
最有效的方法是什么?
可以使用本机java方法解决这个问题,还是需要构建正则表达式?
答案 0 :(得分:2)
我现在想要的文件名意思是
使用适当的课程。 Java提供了例如:
String name = new File("/Users/Fabian/Desktop/R5X5.mps").getName();
您也可以使用
获得类似的结果String path = "/Users/Fabian/Desktop/R5X5.mps";
String name = path.substring(path.lastIndexOf("/") +1); // "+1" since we don't
// want to include `/` in result
(基本上是File#getName
所做的)
答案 1 :(得分:0)
使用正则表达式。它很简单:
String last = str.replaceAll(".*/", "");
这个正则表达式说"一切都包括斜线",它被任何东西取代(实际上"删除"它)。
我认为没有人会使用“#34; building"描述键入".*/"
所需的工作量。
答案 2 :(得分:0)
在我看来,使用FilenameUtils.getName(String filename)是最好的方法。 FilenameUtils
类是Apache Commons IO的一部分。
根据文档,方法"将处理Unix或Windows格式的文件"。 "返回最后一个前向或反斜杠后的文本"作为String对象。
String filename = "/Users/Fabian/Desktop/R5X5.mps";
String name = FilenameUtils.getName(filename);
System.out.println(name);
以上代码打印R5X5.mps
。