如何根据最后一个“/”将字符串分成两部分

How to split string into two parts based on last "/"

我想将一个字符串分成两部分,以便我可以获得文件路径和文件名。

这是我的文件路径...

String totalString = "/mnt/sdcard/PDF/abc.pdf"
String filename = "";String filePath = "";
filename = totalString.substring(files.lastIndexOf("/")+1);

文件路径 = ?

我不知道如何获取 filePath = "/mnt/sdcard/PDF/"?

怎么做?

试试这个

String totalString = "/mnt/sdcard/PDF/abc.pdf";
String[] str=totalString.split("/");
String filename = ""

for(int i=0;i<str.length();i++){
    if(str[i].endsWith(".pdf")){
        filename=str[i];
    }
}
String totalString = "/mnt/sdcard/PDF/abc.pdf";
String filename = "";String filePath = "";
String[] splitted = totalString.split("/");
int i = 0;
for (int i; i < (splitted.length - 1); i++) {
    filePath += splitted[i];
}
filename = splitted[i];

您可以使用 File class 而不是操作字符串,它可以为您提供所需的所有信息:

String totalString = "/mnt/sdcard/PDF/abc.pdf";
File f = new File(totalString);
String filename = f.getName();
String filePath = f.getParent();
System.out.println(filename);
System.out.println(filePath);

输出:

abc.pdf
\mnt\sdcard\PDF

如您所见,parents 元素被 \ 而不是 / 分割,但如果您要使用,这应该不是问题它作为 Java 应用程序的参数,该应用程序也使用 Files。

filePath = totalString.substring(0, totalString.lastIndexOf("/") + 1);

您可以使用 string.split 函数。

String totalString = "/mnt/sdcard/PDF/abc.pdf";
String[] parts = totalString.split("(?<=/)(?=[^/]*$)");
String path = parts[0];
String filename = parts[1];
System.out.println(path);
System.out.println(filename);

输出:

/mnt/sdcard/PDF/
abc.pdf