¿Cómo obtengo la extensión de archivo en Java sin usar ese tonto lastIndexOf('.')
etc.?Java obteniendo la extensión de archivo sin subcadena
Respuesta
La biblioteca de Apache Commons tiene FilenameUtils.getExtension()
.
Puede consultar la fuente que comienza here y FilenameUtils.
Al menos revise su implementación. Es bastante simple, que manejan dir.ext/archivo correctamente, y para manejar algo así como fichero.tar.gz se necesita un caso especial, si se desea extraer .tar.gz en lugar de sólo . gz.
He interpretado que él quería la extensión del archivo en sí, no el nombre sin la extensión. Todavía hay un método para eso ('getExtension'), pero lee lo que hace: *" devuelve la parte textual del nombre del archivo después del último punto ". * Eso es exactamente lo que ya está haciendo; no tiene sentido agregar una biblioteca/dependencia completa solo para la misma funcionalidad (a menos que ya esté usando Apache Commons). –
@JonathanNewmuis gracias, tienes razón. corregido – pb2q
@JonathanNewmuis es decir, a la derecha sobre mi mezcla de métodos. Creo que la implementación de 'getExtension' es un poco más completa que simplemente envolviendo un' lastIndexOf', por razones que sus propias direcciones de respuesta, y p. _dir.ext/file_. – pb2q
Esa es probablemente la forma más fácil (también tenga en cuenta que, según el contexto, no es necesariamente correcto, por ejemplo, ".tar.gz").
También podría split
cadena basada en el carácter .
y tomar la última pieza, pero eso parece igual de difícil.
¿Hay alguna razón en particular por la cual está tratando de evitar substring
y lastIndexOf
?
¿No desea incluir bibliotecas externas? Utilizar expresiones regulares:
String extension = filename.replaceAll("^.*\\.([^.]+)$", "$1");
Con guava
Files.getFileExtension("some.txt")
Me temo que no existe tal método en [jdk8] (http://docs.oracle.com/javase/8/docs/ api/java/nio/file/Files.html), supongo que te refieres a la [guava] de google (http://docs.guava-libraries.googlecode.com/git/javadoc/com/google/common/io/Files. html # getFileExtension% 28java.lang.String% 29) – A4L
@ A4L gracias por señalar esto, me confundí con el paquete java.lang de esta clase ☺ – Entea
- 1. Obteniendo la extensión de archivo en C
- 2. Obteniendo la extensión de archivo en lenguaje C
- 3. nombre de archivo sin extensión
- 4. Retire la extensión del archivo en Java
- 5. Obtener extensión del archivo sin proporcionar extensión en la ruta
- 6. Comprobar la extensión de archivo en Java
- 7. gama de Java subcadena
- 8. Obteniendo el nombre del archivo sin extensión en un Windows Batch Script
- 9. eliminación de la extensión de archivo sin saberlo
- 10. Java/ImageIO obteniendo las dimensiones de la imagen sin leer todo el archivo?
- 11. Guardar FileDialog en Java elimina la extensión de archivo inicial
- 12. Java cheque subcadena
- 13. Java: subcadena rango de índice
- 14. Obtenga el nombre del archivo sin extensión de archivo en la función Vim.
- 15. Obtener nombre del archivo sin la extensión en Python
- 16. REGEX: nombre de archivo de captura desde la URL sin la extensión de archivo
- 17. Retire la extensión de un archivo
- 18. Agregar extensión de archivo a archivo de extensión-menos
- 19. Obtención de tipo MIME en PHP sin EXTENSIÓN DE ARCHIVO
- 20. urls de sitios web sin extensión de archivo?
- 21. URL de coincidencia regex sin extensión de archivo
- 22. Nombre de archivo sin extensión en bash para el bucle
- 23. archivo de imagen sin extensión no visible en IIS7.5
- 24. Páginas web ASP.NET sin extensión de archivo aspx
- 25. ¿Es posible obtener una extensión de archivo sin saberlo?
- 26. ¿Cuál es la mejor manera de hacer una subcadena en un archivo por lotes?
- 27. URL de SiteCore sin la extensión .aspx
- 28. Cómo obtener un nombre de archivo sin extensión desde la ruta del archivo en Ruby
- 29. ¿Cómo obtener el nombre del objeto File sin su extensión en Java?
- 30. Obteniendo un archivo de una solicitud HTTP en java
posible duplicado de [¿Cómo recortar una extensión de archivo de una cadena en Java?] (Http://stackoverflow.com/questions/ 941272/how-do-i-trim-a-file-extension-from-a-string-in-java) – pb2q
posible no. Cualquier solución está usando lastIndexOf – Yoda
Un poco de información sobre por qué 'lastindexof' no es lo que quiere o no le sirve a usted - seguro que sé que este enfoque también tiene problemas, pero un poco de comprensión de por qué usted buscar otro enfoque podría ayudar. – MadProgrammer