Eu tenho uma string:
/abc/def/ghfj.doc
Eu gostaria de extrair ghfj.doc
disso, ou seja, a substring após o último /
ou primeiro /
da direita.
Alguém poderia, por favor, fornecer alguma ajuda?
Eu tenho uma string:
/abc/def/ghfj.doc
Eu gostaria de extrair ghfj.doc
disso, ou seja, a substring após o último /
ou primeiro /
da direita.
Alguém poderia, por favor, fornecer alguma ajuda?
Respostas:
String example = "/abc/def/ghfj.doc";
System.out.println(example.substring(example.lastIndexOf("/") + 1));
Uma implementação muito simples com 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];
o que você tentou? é muito simples:
String s = "/abc/def/ghfj.doc";
s.substring(s.lastIndexOf("/") + 1)
Outra maneira é usar isso .
String path = "/abc/def/ghfj.doc"
String fileName = StringUtils.substringAfterLast(path, "/");
Se você passar nulo para esse método, ele retornará nulo. Se não houver correspondência com o separador, ele retornará uma string vazia.
StringUtils
biblioteca, esta resposta mostra a necessidade de fazê-lo: stackoverflow.com/a/33935645/2966583
Com a Goiaba, faça o seguinte:
String id="/abc/def/ghfj.doc";
String valIfSplitIsEmpty="";
return Iterables.getLast(Splitter.on("/").split(id),valIfSplitIsEmpty);
Eventualmente, configure o Splitter
e use
Splitter.on("/")
.trimResults()
.omitEmptyStrings()
...
Também dê uma olhada neste artigo sobre goiaba Splitter e neste artigo sobre goiaba Iterables
No Kotlin você pode usar substringAfterLast
, especificando um delimitador.
val string = "/abc/def/ghfj.doc"
val result = url.substringAfterLast("/")
println(result)
// It will show ghfj.doc
Do documento :
Retorna uma substring após a última ocorrência do delimitador. Se a sequência não contiver o delimitador, retornará missingDelimiterValue, cujo padrão é a sequência original.
Eu acho que seria melhor se usarmos diretamente a função split
String toSplit = "/abc/def/ghfj.doc";
String result[] = toSplit.split("/");
String returnValue = result[result.length - 1]; //equals "ghfj.doc"