Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/assembly/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java:解析文件路径_Java_Substring_Indexof - Fatal编程技术网

Java:解析文件路径

Java:解析文件路径,java,substring,indexof,Java,Substring,Indexof,我需要解析一个文件路径以从中获取文件名。让我困惑的是,windows使用\作为delimeter和linux-/,而且提供的文件路径甚至可以同时包含这两个delimeter 我当然可以做到: int slash = filePath.lastIndexOf("/"); int backslash = filePath.lastIndexOf("\\"); fileName = filePath.substring(slash > backslash ? slash : backslash)

我需要解析一个文件路径以从中获取文件名。让我困惑的是,windows使用
\
作为delimeter和linux-
/
,而且提供的文件路径甚至可以同时包含这两个delimeter

我当然可以做到:

int slash = filePath.lastIndexOf("/");
int backslash = filePath.lastIndexOf("\\");
fileName = filePath.substring(slash > backslash ? slash : backslash);

但是如果我有更多的分隔符,有没有更好的方法?(可能不是文件路径)

只需使用
文件
类:

String fileName = new File(path).getName();
它处理向前和向后的斜杠,以及两者的组合。

您可以使用

String separator =System.getProperty("path.separator");

获取系统分隔符。

文件f=新文件(文件名);String name=f.getName()这不起作用,因为可能同时存在两个分隔符。