1

tengo el siguiente String:

String ruta = "src\main\resources\static\img\actividades\1646784532368.jpeg"

Y me gustaría poderlo convertir en un array de tipo String mediante el carácter \ con el método split, es decir:

String[] arr = ruta.split("\");

Es decir, el arr[0] sería "src". Pero esto me marca el error "unclosed string literal". ¿Cómo puedo resolver esto? gracias de antemano.

Matías
  • 33
  • 6

2 Answers2

4

Revisa acerca de los metacarácteres:

Los metacarácteres son caracteres no alfabéticos que poseen un significado especial en las expresiones regulares. que son :

\ , ^ , $ , . , | , ? , * , + , ( , ) , { , } , [

Revisa: Cómo separar un String en Java. Cómo utilizar split()

El carácter '\' es un carácter especial y debe escaparse cuando se usa como parte de una cadena, por lo tanto usa otro '', para que el carcàcter sea vàlido:

String ruta = "src\\main\\resources\\static\\img\\actividades\\1646784532368.jpeg";

Para separar los elementos correctamente lo realizarìas de esta forma:

String ruta = "src\\main\\resources\\static\\img\\actividades\\1646784532368.jpeg";
    
    String separator = "\\";
    String[] arr = ruta.split(Pattern.quote(separator));
    
    for (String elemento: arr) {
      System.out.println(elemento);
    }
 

Salida:

src
main
resources
static
img
actividades
1646784532368.jpeg
Jorgesys
  • 103,630
  • 13
  • 52
  • 124
1

debes colocar el carácter de escape para realizar esta acción el código te quedaría así:

String[] arr = ruta.split("//");

al colocar // estas indicando que será una diagonal

La ruta normalmente en windows la se coloca con slash es decir :

String ruta = "src//main//resources//static//img//actividades//1646784532368.jpeg";
GhostMan
  • 46
  • 7
  • No me funciona, me sale el error "Invalid regular expression: Unexpected internal error" – Matías Mar 09 '22 at 00:27
  • puedes comentar completo tu codigo para verlo – GhostMan Mar 09 '22 at 00:28
  • Mi código es el que esta en la pregunta, si te sirve de algo estoy utilizando NetBeans y el error sale como Warning en rojo – Matías Mar 09 '22 at 00:30
  • Esa ruta de donde la obtienes, estas en windows?, el string de la ruta también te aparece mal cierto? – GhostMan Mar 09 '22 at 00:32
  • Sí, estoy en Windows. La ruta es básicamente donde se guarda una imagen que proviene de un formulario, pero quiero poder editar el String de esa ruta para guardarla una Base de Datos y poder usarla como atributo src de una etiqueta en HTML. – Matías Mar 09 '22 at 00:35
  • revisa la edicion – GhostMan Mar 09 '22 at 00:35
  • Gracias, ya cambie la ruta y funcionó. Voy a marcar tu respuesta como la correcta. – Matías Mar 09 '22 at 00:42
  • Me alegro matias, cualquier otra duda no dudes en colocarla, te agradezco por puntuarme :) – GhostMan Mar 09 '22 at 00:46