Вырезать строку после второго слеша слева

Я хочу запрограммировать плагин в Eclipse. Теперь я вернул строку с путем из выбранного проекта:

C:/Users/mbauer/abcde/efghj/klmno...

Теперь я хотел бы вырезать строку в подстроке следующим образом:

C:/Users/mbauer/

Строка должна быть вырезана после 3-го слеша слева. Путь должен быть динамическим для других пользователей.

Я старался:

String getPath = getSelectedProjectPath(dialog);
System.out.println(getPath.substring(0, 15));

Но с IndexOf 0 и 15 путь больше не является динамическим, если пользователь с более длинным именем пробует плагин!

4 ответа

Я думаю что Path.subpath будет делать то, что вы описываете:

System.out.println(
    FileSystems.getDefault().getPath(getPath).subpath(0, 3));

Как предлагается в другом ответе, вы можете использовать Path а также Paths из пакета java.nio.file.

Вот еще один способ использовать его:

Path path = Paths.get("C:/Users/mbauer/abcde/efghj/klmno");

System.out.println(path.subpath(0, 3).toAbsolutePath());

Такое регулярное выражение будет работать:

public static void main(String[] args) throws Exception {
    String s1 = "C:/Users/mbauer/abcde/efghj/klmno";
    System.out.println(s1.replaceAll("((.*?/){3}).*", "$1"));
}

O / P: C:/Users/mbauer/

Например, вы можете использовать indexOf() для поиска индекса определенных символов. Другими словами: вы действительно хотите провести предварительное исследование о том, как искать в строках; и как можно ими манипулировать. Существует множество документов, объясняющих такие вещи. Еще один продвинутый способ - использовать регулярные выражения Java, соответственно. шаблоны.

Но имейте в виду: не все пользователи Eclipse используют Windows. У вас может быть довольно много людей, использующих Mac или Linux; Таким образом, ваш нынешний подход очень скоро сломается. Таким образом, вместо выполнения строковых операций низкого уровня; Вы должны ознакомиться с такими понятиями, как Java Paths, чтобы понять абстракции, которые вы должны использовать для создания разумного плагина.

Итак, серьезно: такой вид поиска / манипуляции со строками - абсолютно базовый материал. Принимая во внимание, что создание плагинов Eclipse - действительно сложная тема. Значение: вы новичок; так что может быть лучше сделать шаг назад и просто узнать гораздо больше о языке Java; прежде чем начать писать плагины затмения. Потому что есть вероятность: учитывая ваши текущие знания, вы создадите паршивый плагин, который никто не захочет использовать.

Другие вопросы по тегам