Java - 从右侧剪切字符串直到特定字符

时间:2016-05-09 20:24:16

标签: java string cut

我有以下字符串,其文件路径如下:

  

/Users/Fabian/Desktop/R5X5.mps

我现在想要知道文件名的含义 - 从右侧到'/'的所有内容。

  

在这种情况下:R5X5.mps

最有效的方法是什么?

可以使用本机java方法解决这个问题,还是需要构建正则表达式?

3 个答案:

答案 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