2015-03-27 2 views
0

Я хочу разбить строку на две части, чтобы я мог получить путь к файлу и имя файла.Как разбить строку на две части на основе последнего «/»

Вот мой путь к файлу ...

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

Filepath =?

Я не получаю, как получить filePath = "/ mnt/sdcard/PDF /"?

Как это сделать?

+0

вы можете использовать подстроку как для [проверки] (http://ideone.com/3IJijS) – silentprogrammer

+0

Просто используйте класс File. Файл f = новый файл (имя файла); Строковое имя = f.getName(); Строковый путь = f.getParent.getAbsolutePath(); –

ответ

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 

Поскольку y ou см. parent Элементы s разделены на \ вместо /, но это не должно быть проблемой, если вы собираетесь использовать его в качестве аргумента для приложения Java, которое также использует File s.

+0

Да Спасибо @Pshemo – Banku

+2

@Banku Добро пожаловать :) – Pshemo

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]; 
    } 
} 
+1

:) Спасибо @M D – Banku

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]; 
3
filePath = totalString.substring(0, totalString.lastIndexOf("/") + 1); 
+0

хотя @ Ответ Pshemo - это то, что нужно использовать, но это именно то, что вам нужно. –

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 
Смежные вопросы