J'ai une chaîne:
/abc/def/ghfj.doc
Je voudrais en extraire ghfj.doc
, c'est-à-dire la sous-chaîne après la dernière /
, ou la première /
de droite.
Quelqu'un pourrait-il fournir de l'aide?
J'ai une chaîne:
/abc/def/ghfj.doc
Je voudrais en extraire ghfj.doc
, c'est-à-dire la sous-chaîne après la dernière /
, ou la première /
de droite.
Quelqu'un pourrait-il fournir de l'aide?
Réponses:
String example = "/abc/def/ghfj.doc";
System.out.println(example.substring(example.lastIndexOf("/") + 1));
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];
qu'as-tu essayé? c'est très simple:
String s = "/abc/def/ghfj.doc";
s.substring(s.lastIndexOf("/") + 1)
Une autre façon est d'utiliser ce .
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, il retournera une chaîne vide.
StringUtils
bibliothèque, cette réponse montre chaud pour le faire: stackoverflow.com/a/33935645/2966583
Avec la goyave, procédez comme suit :
String id="/abc/def/ghfj.doc";
String valIfSplitIsEmpty="";
return Iterables.getLast(Splitter.on("/").split(id),valIfSplitIsEmpty);
Configurer éventuellement le Splitter
et utiliser
Splitter.on("/")
.trimResults()
.omitEmptyStrings()
...
Jetez également un œil à cet article sur Splitter de goyave et à cet article sur Iterables de goyave
Dans Kotlin, vous pouvez utiliser substringAfterLast
, en spécifiant un délimiteur.
val string = "/abc/def/ghfj.doc"
val result = url.substringAfterLast("/")
println(result)
// It will show ghfj.doc
Du doc :
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.
Je pense que ce serait mieux si nous utilisons directement la fonction split
String toSplit = "/abc/def/ghfj.doc";
String result[] = toSplit.split("/");
String returnValue = result[result.length - 1]; //equals "ghfj.doc"