Tengo una cadena:
/abc/def/ghfj.doc
Me gustaría extraer ghfj.doc
de esto, es decir, la subcadena después de la última /
, o la primera /
desde la derecha.
¿Podría alguien ayudarme?
Tengo una cadena:
/abc/def/ghfj.doc
Me gustaría extraer ghfj.doc
de esto, es decir, la subcadena después de la última /
, o la primera /
desde la derecha.
¿Podría alguien ayudarme?
Respuestas:
String example = "/abc/def/ghfj.doc";
System.out.println(example.substring(example.lastIndexOf("/") + 1));
Una implementación muy simple 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];
que has intentado es muy simple:
String s = "/abc/def/ghfj.doc";
s.substring(s.lastIndexOf("/") + 1)
Otra forma es usar esto .
String path = "/abc/def/ghfj.doc"
String fileName = StringUtils.substringAfterLast(path, "/");
Si pasa nulo a este método, devolverá nulo. Si no hay coincidencia con el separador, devolverá una cadena vacía.
StringUtils
biblioteca, esta respuesta muestra lo mejor para hacerlo: stackoverflow.com/a/33935645/2966583
Con guayaba haz esto:
String id="/abc/def/ghfj.doc";
String valIfSplitIsEmpty="";
return Iterables.getLast(Splitter.on("/").split(id),valIfSplitIsEmpty);
Eventualmente configure Splitter
y use
Splitter.on("/")
.trimResults()
.omitEmptyStrings()
...
También eche un vistazo a este artículo sobre Splitter de guayaba y este artículo sobre Iterables de guayaba
En Kotlin puede usar substringAfterLast
, especificando un delimitador.
val string = "/abc/def/ghfj.doc"
val result = url.substringAfterLast("/")
println(result)
// It will show ghfj.doc
Desde el documento :
Devuelve una subcadena después de la última aparición del delimitador. Si la cadena no contiene el delimitador, devuelve missingDelimiterValue que por defecto es la cadena original.
Creo que sería mejor si utilizamos directamente la función de división
String toSplit = "/abc/def/ghfj.doc";
String result[] = toSplit.split("/");
String returnValue = result[result.length - 1]; //equals "ghfj.doc"