238 votes

Java : Obtenir une sous-chaîne à partir d'une chaîne commençant après un caractère particulier

J'ai une chaîne:

/abc/def/ghfj.doc

Je voudrais extraire ghfj.doc de cela, c'est-à-dire la sous-chaîne après le dernier /, ou le premier / depuis la droite.

Est-ce que quelqu'un pourrait fournir de l'aide s'il vous plaît?

367voto

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

48voto

Veger Points 17657

Une implémentation très simple avec 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];

43voto

vishal_aim Points 2641

Qu'avez-vous essayé ? c'est très simple :

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

32voto

Alex Green Points 417

Une autre façon est d'utiliser StringUtils.substringAfterLast() d'Apache Commons Lang :

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

Si vous passez null à cette méthode, elle renverra null.
S'il n'y a pas de correspondance avec le séparateur, elle renverra une chaîne vide.

12voto

Michal Przysucha Points 598

Vous pouvez utiliser Apache commons :

Pour obtenir la sous-chaîne après la dernière occurrence, utilisez cette méthode.

Et pour obtenir la sous-chaîne après la première occurrence, la méthode équivalente est ici.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X