Вырезание струн для эффективного повышения уровня - PullRequest
0 голосов
/ 24 июня 2010

Каков наиболее эффективный способ повысить уровень дерева каталогов?я ищу наиболее эффективное использование метода класса строки для получения e: \ files \ report \ fruits from e: \ files \ report \ fruits \ яблок

Ответы [ 3 ]

4 голосов
/ 24 июня 2010

Я думаю, вам лучше использовать

File f = new File("e:\\files\\report\\fruits\\apples");
String parent = f.getParent();

Если вы настаиваете на использовании только String и предполагаете, что \ является разделителем пути, вы можете сделать что-то вроде этого:

String s = "e:\\files\\report\\fruits\\apples";
String parent = s.substring(0, s.lastIndexOf('\\'));

Но вы должны остерегаться крайних случаев, когда не найдено ни одного символа '\'.

3 голосов
/ 24 июня 2010

Я бы не стал делать это с помощью "разбивки строк", потому что он будет встраивать в ваш код всевозможные зависимости платформы от синтаксиса путей. Вместо этого используйте класс java.io.File.

String parent = new File("e:\files\report\fruits\apples").getParent();

или еще лучше:

File parent = new File("e:\files\report\fruits\apples").getParentFile();
0 голосов
/ 24 июня 2010

Стивен делает правильное замечание о зависимости платформы, но вот что вы просили:

String dir = "e:\\files\\report\\fruits\\apples";
String parent = dir.replaceAll("\\\\[^\\\\]+$", "");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...