2014-12-05 4 views
0

У меня есть строка, которая может изменяться:Получить конкретные символы в строке

String filePath = "/this/is/my/file.txt"; 

Мне нужно, чтобы получить эту строку в другие строки, информация:

"/this/is/my" and "file.txt" 

я попробовал этот метод, но он не смог (авария):

int counter = 0; 
    filePath = "/this/is/my/file.txt"; 
    String filePath2 = filePath.substring(filePath.lastIndexOf("/") + 1); // return "file.txt" 
    for (int i = 0; i < filePath2.length(); i++) { 
     counter++; // count number of char on filePath2 
    } 
    String filePath3 = filePath3.substring(filePath.lastIndexOf("") + counter); // Remove "file.txt" from filePath2 depending of character numbers on filePath2 backwards 

Кто-нибудь знает лучший способ? Благодаря!

12-05 15:53:00.940 11102-11102/br.fwax.paulo.flasher E/AndroidRuntime﹕ FATAL EXCEPTION: main 
    Process: br.fwax.paulo.flasher, PID: 11102 
    java.lang.RuntimeException: Unable to start activity ComponentInfo{br.fwax.paulo.flasher/br.fwax.paulo.flasher.MFlasher}: java.lang.StringIndexOutOfBoundsException: length=21; index=29 
+0

Try: 'String filePath3 = filePath.replace (filePath2," ");' - Таким образом, чтобы получить исходный (полный путь) - файл. –

+0

как насчет String filePath3 = filePath.substring (0, filePath.lastIndexOf ("/") + 1); – aadi53

ответ

3

Как насчет класса Java File?

File f = new File(filePath); 
String directory = f.getParent(); 
String fileName = f.getName(); 
3

Почему у вас даже есть ваш цикл?

int index = filePath.lastIndexOf("/"); 
String firstString = filePath.substring(0, index); 
String secondString = filePath.substring(index+1, filePath.length()); 
1

Вы можете использовать класс File.

String filePath = "/this/is/my/file.txt"; 

File f = new File(filePath); 

System.out.println(f.getParent());// \this\is\my 
System.out.println(f.getName());// file.txt 

Обратите внимание, что это может изменить / к \, но если вы собираетесь использовать эти результаты в качестве аргументов в других API, связанные с файлами, не должно быть никаких проблем с этим изменением.

Смежные вопросы