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

Java 如何根据最后一个“/”将字符串拆分为两部分,java,android,string,split,Java,Android,String,Split,我想把一个字符串分成两部分,以便获得文件路径和文件名 这是我的文件路径 String totalString = "/mnt/sdcard/PDF/abc.pdf" String filename = "";String filePath = ""; filename = totalString.substring(files.lastIndexOf("/")+1); 文件路径= 我不知道如何获取filePath=/mnt/sdcard/PDF/ 怎么做?试试这个 String totalSt

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

这是我的文件路径

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";
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
正如您所看到的,父元素是用\而不是/分割的,但如果您要将它用作Java应用程序的参数,而Java应用程序也使用文件,那么这应该不会是一个问题

您可以使用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);

您可以为这两个类使用substring,只需使用File类即可。文件f=新文件名;String name=f.getName;字符串路径=f.getParent.getAbsolutePath;虽然@Pshemo的答案是必须使用的,但这一个正是您需要的。
filePath = totalString.substring(0, totalString.lastIndexOf("/") + 1);
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