tutorialspoint - Java: obtener una subcadena de una cadena que comienza después de un personaje en particular
substring java indexof (8)
Tengo una cadena:
/abc/def/ghfj.doc
Me gustaría extraer ghfj.doc
de esto, es decir, la subcadena después del último /
, o primero /
desde la derecha.
¿Podría alguien ayudarme?
¿Qué has intentado? es muy sencillo:
String s = "/abc/def/ghfj.doc";
s.substring(s.lastIndexOf("/") + 1)
Creo que sería mejor si usamos 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"
En Kotlin puedes usar substringAfterLast
, especificando un delimitador.
val string = "/abc/def/ghfj.doc"
val result = url.substringAfterLast("/")
println(result)
// It will show ghfj.doc
Del doc :
Devuelve una subcadena después de la última aparición de delimitador. Si la cadena no contiene el delimitador, devuelve missingDelimiterValue, que por defecto es la cadena original.
Esto también puede obtener el nombre de archivo
import java.nio.file.Paths;
import java.nio.file.Path;
Path path = Paths.get("/abc/def/ghfj.doc");
System.out.println(path.getFileName().toString());
Se imprimirá ghfj.doc
Otra forma es usar this .
String path = "/abc/def/ghfj.doc"
String fileName = StringUtils.substringAfterLast(path, "/");
Si pasa null a este método, devolverá nulo. Si no hay coincidencia con el separador, devolverá la cadena vacía.
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];
String example = "/abc/def/ghfj.doc";
System.out.println(example.substring(example.lastIndexOf("/") + 1));