Ho una stringa:
/abc/def/ghfj.doc
Vorrei estrarre ghfj.doc
da questo, vale a dire la sottostringa dopo l'ultima /
o la prima /
da destra.
Qualcuno potrebbe fornire aiuto?
Ho una stringa:
/abc/def/ghfj.doc
Vorrei estrarre ghfj.doc
da questo, vale a dire la sottostringa dopo l'ultima /
o la prima /
da destra.
Qualcuno potrebbe fornire aiuto?
Risposte:
String example = "/abc/def/ghfj.doc";
System.out.println(example.substring(example.lastIndexOf("/") + 1));
Un'implementazione molto semplice con 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];
cosa hai provato è molto semplice:
String s = "/abc/def/ghfj.doc";
s.substring(s.lastIndexOf("/") + 1)
Un altro modo è quello di utilizzare questo .
String path = "/abc/def/ghfj.doc"
String fileName = StringUtils.substringAfterLast(path, "/");
Se si passa null a questo metodo, verrà restituito null. Se non c'è corrispondenza con il separatore, verrà restituita una stringa vuota.
StringUtils
biblioteca, questa risposta spettacoli hot per farlo: stackoverflow.com/a/33935645/2966583
Con Guava fai questo:
String id="/abc/def/ghfj.doc";
String valIfSplitIsEmpty="";
return Iterables.getLast(Splitter.on("/").split(id),valIfSplitIsEmpty);
Alla fine configura Splitter
e usa
Splitter.on("/")
.trimResults()
.omitEmptyStrings()
...
Dai un'occhiata anche a questo articolo su Guava Splitter e questo articolo su Guava Iterables
In Kotlin puoi usare substringAfterLast
, specificando un delimitatore.
val string = "/abc/def/ghfj.doc"
val result = url.substringAfterLast("/")
println(result)
// It will show ghfj.doc
Dal documento :
Restituisce una sottostringa dopo l'ultima occorrenza del delimitatore. Se la stringa non contiene il delimitatore, restituisce missingDelimiterValue che per impostazione predefinita è la stringa originale.
Penso che sarebbe meglio se usiamo direttamente la funzione split
String toSplit = "/abc/def/ghfj.doc";
String result[] = toSplit.split("/");
String returnValue = result[result.length - 1]; //equals "ghfj.doc"