olha, eu entendo o valor de procurar a resposta antes de fazer perguntas, mas o fato é que essa pergunta tornou minha pesquisa muito mais fácil .. exatamente o que eu queria após o primeiro hit. Mais rápido que consultar javadocs. É bom que esta pergunta esteja aqui. Por que os votos negativos?
Eric
3
Embora isso seja um pouco diferente da sua pergunta original: No seu exemplo, org.apache.commons.io.FilenameUtils.getBaseName é muito mais confiável do que executar suas próprias operações de string.
Till Schäfer
4
@ Eric Estou totalmente de acordo com o seu comentário, pois este foi o primeiro resultado do Google para a minha pergunta e a resposta aceita é exatamente o que eu precisava usar.
thonnor
Respostas:
310
String example ="/abc/def/ghfj.doc";System.out.println(example.substring(example.lastIndexOf("/")+1));
Finalmente, algo realmente útil, não sabia sobre esse método. Eu odeio ter problemas com substring + indexof + 1 - 2 +3 qualquer. Este é muito mais limpo :)
BAERUS
Se você deseja usar esse método no Android, você deve importar a StringUtilsbiblioteca, esta resposta mostra a necessidade de fazê-lo: stackoverflow.com/a/33935645/2966583
stramin
9
Você pode usar o Apache commons:
Para substring após a última ocorrência, use este método.
E para substring após a primeira ocorrência, o método equivalente está aqui .
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.
esse código gerará um erro se o separador não for encontrado.
Patrick Parker
@PatrickParker Por que você comentou em todos os lugares que isso gerará um erro se o separador não for encontrado. Se você está fazendo isso para fins de conhecimento do que bem, mas eu só acho que é um pouco demais, talvez ...
Gaurav Shopping
@GauravMall Ajudo as pessoas a melhorar suas respostas, a escrever um código melhor e, para quem está visitando, ajudá-las a evitar armadilhas e desenvolver o entendimento do código antes de colá-lo em algum lugar. Terei o prazer de remover meu comentário assim que a resposta for melhorada. Além disso, escrevê-lo em dois lugares dificilmente está "em todo lugar". Finalmente, a seção de comentários não é para meta-discussão.
Respostas:
fonte
Uma implementação muito simples com
String.split()
:fonte
o que você tentou? é muito simples:
fonte
Outra maneira é usar isso .
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.
fonte
StringUtils
biblioteca, esta resposta mostra a necessidade de fazê-lo: stackoverflow.com/a/33935645/2966583Você pode usar o Apache commons:
Para substring após a última ocorrência, use este método.
E para substring após a primeira ocorrência, o método equivalente está aqui .
fonte
Isso também pode obter o nome do arquivo
Vai imprimir
ghfj.doc
fonte
Com a Goiaba, faça o seguinte:
Eventualmente, configure o
Splitter
e useTambém dê uma olhada neste artigo sobre goiaba Splitter e neste artigo sobre goiaba Iterables
fonte
No Kotlin você pode usar
substringAfterLast
, especificando um delimitador.Do documento :
fonte
Eu acho que seria melhor se usarmos diretamente a função split
fonte