У меня есть строка:
/abc/def/ghfj.doc
Я хотел бы извлечь ghfj.doc
из этого, то есть подстроку после последней /
или первой /
справа.
Может ли кто-нибудь помочь?
У меня есть строка:
/abc/def/ghfj.doc
Я хотел бы извлечь ghfj.doc
из этого, то есть подстроку после последней /
или первой /
справа.
Может ли кто-нибудь помочь?
Ответы:
String example = "/abc/def/ghfj.doc";
System.out.println(example.substring(example.lastIndexOf("/") + 1));
Очень простая реализация с 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];
что ты пробовал? это очень просто:
String s = "/abc/def/ghfj.doc";
s.substring(s.lastIndexOf("/") + 1)
Другой способ - использовать это .
String path = "/abc/def/ghfj.doc"
String fileName = StringUtils.substringAfterLast(path, "/");
Если вы передадите null этому методу, он вернет null. Если нет совпадения с разделителем, он вернет пустую строку.
StringUtils
библиотеку, этот ответ показывает горячо, чтобы сделать это: stackoverflow.com/a/33935645/2966583
С Guava сделать это:
String id="/abc/def/ghfj.doc";
String valIfSplitIsEmpty="";
return Iterables.getLast(Splitter.on("/").split(id),valIfSplitIsEmpty);
В конечном итоге настроить Splitter
и использовать
Splitter.on("/")
.trimResults()
.omitEmptyStrings()
...
Также ознакомьтесь с этой статьей о разделителе гуавы и этой статье об итерациях гуавы.
В Kotlin вы можете использовать substringAfterLast
, указав разделитель.
val string = "/abc/def/ghfj.doc"
val result = url.substringAfterLast("/")
println(result)
// It will show ghfj.doc
Из документа :
Возвращает подстроку после последнего вхождения разделителя. Если строка не содержит разделитель, возвращает missingDelimiterValue, которое по умолчанию соответствует исходной строке.
Я думаю, что было бы лучше, если бы мы использовали непосредственно функцию разделения
String toSplit = "/abc/def/ghfj.doc";
String result[] = toSplit.split("/");
String returnValue = result[result.length - 1]; //equals "ghfj.doc"