Подтвердить что ты не робот

Java: получение подстроки из строки, начинающейся после определенного символа

У меня есть строка:

/abc/def/ghfj.doc

Я хотел бы извлечь из него ghfj.doc, т.е. подстроку после последнего / или сначала / справа.

Может ли кто-нибудь помочь?

4b9b3361

Ответ 1

    String example = "/abc/def/ghfj.doc";
    System.out.println(example.substring(example.lastIndexOf("/") + 1));

Ответ 2

Очень простая реализация с String.split():

String path = "/abc/def/ghfj.doc";
// Split path into segments
String segments[] = path.split("/");
// Grab the last segment
String document = segments[segments.length - 1];

Ответ 3

что ты пробовал? это очень просто:

String s = "/abc/def/ghfj.doc";
s.substring(s.lastIndexOf("/") + 1)

Ответ 4

Вы можете использовать общие ресурсы Apache:

Для подстроки после последнего вхождения используйте этот метод.

И для подстроки после первого вхождения эквивалентный метод здесь.

Ответ 5

Это также может получить имя файла

import java.nio.file.Paths;
import java.nio.file.Path;
Path path = Paths.get("/abc/def/ghfj.doc");
System.out.println(path.getFileName().toString());

Будет напечатан ghfj.doc

Ответ 6

Я думаю, что было бы лучше, если бы мы непосредственно использовали функцию split

String toSplit = "/abc/def/ghfj.doc";

String result[] = toSplit.split("/");

String returnValue = result[result.length - 1]; //equals "ghfj.doc"

Ответ 7

Другой способ - использовать this.

String path = "/abc/def/ghfj.doc"
String fileName = StringUtils.substringAfterLast(path, "/");

Если вы передадите null этому методу, он вернет null. Если совпадение с разделителем не будет, оно вернет пустую строку.