regardez, je comprends la valeur de la recherche de la réponse vous-même avant de poser des questions, mais le fait est que cette question a rendu ma recherche beaucoup plus facile .. exactement ce que je voulais après le premier coup. Plus rapide que de consulter des javadocs. C'est bien que cette question soit là. Pourquoi les downvotes?
Eric
3
Bien que cela soit quelque peu différent de votre question d'origine: dans votre exemple, org.apache.commons.io.FilenameUtils.getBaseName est beaucoup plus fiable que de faire vos propres opérations de chaîne.
Jusqu'à Schäfer
4
@Eric Je suis entièrement d'accord avec votre commentaire, car c'était le premier résultat Google pour ma question et la réponse acceptée est exactement ce que je devais utiliser.
thonnor
Réponses:
310
String example ="/abc/def/ghfj.doc";System.out.println(example.substring(example.lastIndexOf("/")+1));
Enfin quelque chose de vraiment pratique, ne connaissait pas cette méthode. Je déteste tracasser avec substring + indexof + 1 - 2 +3 que ce soit. C'est beaucoup plus propre :)
BAERUS
Si vous souhaitez utiliser cette méthode sur Android, vous devez importer la StringUtilsbibliothèque, cette réponse montre chaud pour le faire: stackoverflow.com/a/33935645/2966583
stramin
9
Vous pouvez utiliser Apache commons:
Pour la sous-chaîne après la dernière occurrence, utilisez cette méthode.
Et pour la sous-chaîne après la première occurrence, la méthode équivalente est ici .
Renvoie une sous-chaîne après la dernière occurrence du délimiteur. Si la chaîne ne contient pas le délimiteur, retourne missingDelimiterValue qui correspond par défaut à la chaîne d'origine.
ce code générera une erreur si le séparateur n'est pas trouvé.
Patrick Parker
@PatrickParker Pourquoi avez-vous commenté partout qu'il lancerait une erreur si le séparateur n'était pas trouvé. Si vous le faites à des fins de connaissances, d'accord, mais je pense juste que c'est un peu trop peut-être ...
Gaurav Mall
@GauravMall J'aide les gens à améliorer leurs réponses, à écrire un meilleur code et à ceux qui le visitent pour les aider à éviter les pièges et à mieux comprendre le code avant de le coller quelque part. Je supprimerai volontiers mon commentaire une fois la réponse améliorée. De plus, l'écrire à deux endroits n'est guère «partout». Enfin, la section des commentaires n'est pas destinée à une méta-discussion.
Réponses:
la source
Une implémentation très simple avec
String.split()
:la source
qu'as-tu essayé? c'est très simple:
la source
Une autre façon est d'utiliser ce .
Si vous passez null à cette méthode, elle renverra null. S'il n'y a pas de correspondance avec le séparateur, il retournera une chaîne vide.
la source
StringUtils
bibliothèque, cette réponse montre chaud pour le faire: stackoverflow.com/a/33935645/2966583Vous pouvez utiliser Apache commons:
Pour la sous-chaîne après la dernière occurrence, utilisez cette méthode.
Et pour la sous-chaîne après la première occurrence, la méthode équivalente est ici .
la source
Cela peut également obtenir le nom de fichier
Imprime
ghfj.doc
la source
Avec la goyave, procédez comme suit :
Configurer éventuellement le
Splitter
et utiliserJetez également un œil à cet article sur Splitter de goyave et à cet article sur Iterables de goyave
la source
Dans Kotlin, vous pouvez utiliser
substringAfterLast
, en spécifiant un délimiteur.Du doc :
la source
Je pense que ce serait mieux si nous utilisons directement la fonction split
la source