我有如下字符串,其文件路径如下:/用户/fabian/desktop/r5x5.mps我现在只想知道文件名的意思-从右边到“/”的所有内容。在这种情况下:r5x5.mps最有效的方法是什么?这个问题可以用本机java方法解决,还是需要构建一个正则表达式?
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 是的)
File#getName
9nvpjoqh2#
在我看来,使用filenameutils.getname(字符串文件名)是最好的方法。这个 FilenameUtils 类是apache commons io的一部分。根据文档,该方法“将处理unix或windows格式的文件”最后一个正斜杠或反斜杠后面的文本作为字符串对象返回。
FilenameUtils
String filename = "/Users/Fabian/Desktop/R5X5.mps"; String name = FilenameUtils.getName(filename); System.out.println(name);
上面的代码打印出来 R5X5.mps .
R5X5.mps
o75abkj43#
使用正则表达式。很简单:
String last = str.replaceAll(".*/", "");
这个正则表达式表示“所有的东西都向上,包括一个斜杠”,这个斜杠被替换为nothing(实际上是“删除”它)。我不认为有人会用“建筑”这个词来形容打字所需的努力 ".*/" .
".*/"
3条答案
按热度按时间z31licg01#
我现在只想知道文件名的意思
使用适当的类。例如,java提供:
您也可以使用
(本质上是什么
File#getName
是的)9nvpjoqh2#
在我看来,使用filenameutils.getname(字符串文件名)是最好的方法。这个
FilenameUtils
类是apache commons io的一部分。根据文档,该方法“将处理unix或windows格式的文件”最后一个正斜杠或反斜杠后面的文本作为字符串对象返回。
上面的代码打印出来
R5X5.mps
.o75abkj43#
使用正则表达式。很简单:
这个正则表达式表示“所有的东西都向上,包括一个斜杠”,这个斜杠被替换为nothing(实际上是“删除”它)。
我不认为有人会用“建筑”这个词来形容打字所需的努力
".*/"
.