Mire, entiendo el valor de buscar la respuesta usted mismo antes de hacer preguntas, pero el hecho es que esta pregunta hizo mi búsqueda mucho más fácil ... exactamente lo que quería después del primer golpe. Más rápido que consultar javadocs. Es bueno que esta pregunta esté aquí. ¿Por qué los votos negativos?
Eric
3
Aunque esto es algo diferente de su pregunta original: en su ejemplo org.apache.commons.io.FilenameUtils.getBaseName es mucho más confiable que hacer sus propias operaciones de cadena.
Hasta Schäfer el
44
@Eric Estoy completamente de acuerdo con tu comentario, ya que este fue el primer resultado de Google para mi pregunta y la respuesta aceptada es exactamente lo que necesitaba usar.
thonnor
Respuestas:
310
String example ="/abc/def/ghfj.doc";System.out.println(example.substring(example.lastIndexOf("/")+1));
Finalmente algo realmente útil, no sabía sobre este método. Odio molestar con la subcadena + índice de + 1 - 2 +3 en absoluto. Esto es mucho más limpio :)
BAERUS
Si desea utilizar este método en Android, debe importar la StringUtilsbiblioteca, esta respuesta muestra lo mejor para hacerlo: stackoverflow.com/a/33935645/2966583
stramin
9
Puedes usar los comunes de Apache:
Para la subcadena después de la última aparición, use este método.
Y para la subcadena después de la primera aparición, el método equivalente está aquí .
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.
este código arrojará un error si no se encuentra el separador.
Patrick Parker
@PatrickParker ¿Por qué has comentado en todas partes que arrojará un error si no se encuentra el separador? Si lo está haciendo con fines de conocimiento que bien, pero creo que es demasiado, tal vez ...
Gaurav Mall
@GauravMall Estoy ayudando a las personas a mejorar sus respuestas, a escribir un mejor código, y a aquellos que están de visita para ayudarlos a evitar dificultades y desarrollar la comprensión del código antes de pegarlo en algún lugar. Con mucho gusto eliminaré mi comentario una vez que se mejore la respuesta. Además, escribirlo en dos lugares es apenas "en todas partes". Finalmente, la sección de comentarios no es para meta discusión.
Respuestas:
fuente
Una implementación muy simple con
String.split()
:fuente
que has intentado es muy simple:
fuente
Otra forma es usar esto .
Si pasa nulo a este método, devolverá nulo. Si no hay coincidencia con el separador, devolverá una cadena vacía.
fuente
StringUtils
biblioteca, esta respuesta muestra lo mejor para hacerlo: stackoverflow.com/a/33935645/2966583Puedes usar los comunes de Apache:
Para la subcadena después de la última aparición, use este método.
Y para la subcadena después de la primera aparición, el método equivalente está aquí .
fuente
Esto también puede obtener el nombre de archivo
Imprimirá
ghfj.doc
fuente
Con guayaba haz esto:
Eventualmente configure
Splitter
y useTambién eche un vistazo a este artículo sobre Splitter de guayaba y este artículo sobre Iterables de guayaba
fuente
En Kotlin puede usar
substringAfterLast
, especificando un delimitador.Desde el documento :
fuente
Creo que sería mejor si utilizamos directamente la función de división
fuente