从右边剪切一个字符串直到指定字符

niknxzdl  于 2021-07-03  发布在  Java
关注(0)|答案(3)|浏览(367)

我有如下字符串,其文件路径如下:
/用户/fabian/desktop/r5x5.mps
我现在只想知道文件名的意思-从右边到“/”的所有内容。
在这种情况下:r5x5.mps
最有效的方法是什么?
这个问题可以用本机java方法解决,还是需要构建一个正则表达式?

z31licg0

z31licg01#

我现在只想知道文件名的意思
使用适当的类。例如,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 是的)

9nvpjoqh

9nvpjoqh2#

在我看来,使用filenameutils.getname(字符串文件名)是最好的方法。这个 FilenameUtils 类是apache commons io的一部分。
根据文档,该方法“将处理unix或windows格式的文件”最后一个正斜杠或反斜杠后面的文本作为字符串对象返回。

String filename = "/Users/Fabian/Desktop/R5X5.mps";
String name = FilenameUtils.getName(filename);
System.out.println(name);

上面的代码打印出来 R5X5.mps .

o75abkj4

o75abkj43#

使用正则表达式。很简单:

String last = str.replaceAll(".*/", "");

这个正则表达式表示“所有的东西都向上,包括一个斜杠”,这个斜杠被替换为nothing(实际上是“删除”它)。
我不认为有人会用“建筑”这个词来形容打字所需的努力 ".*/" .

相关问题