我想将一个字符串分成两部分,以便我可以获取文件路径和文件名。
这是我的档案路径......
String totalString = "/mnt/sdcard/PDF/abc.pdf"
String filename = "";String filePath = "";
filename = totalString.substring(files.lastIndexOf("/")+1);
filePath =?
我没有得到如何获取filePath =“/ mnt / sdcard / PDF /”?
怎么做?
答案 0 :(得分:8)
您可以使用File
类来代替操纵字符串,它可以为您提供所需的所有信息:
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
如您所见,父的元素与\
而不是/
分开,但如果您要将其用作参数,这不应该成为问题对于也使用File
的Java应用程序。
答案 1 :(得分:3)
filePath = totalString.substring(0, totalString.lastIndexOf("/") + 1);
答案 2 :(得分:2)
试试这个
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];
}
}
答案 3 :(得分:2)
您可以使用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
答案 4 :(得分:1)
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];