ltd9938:
Supongamos que tengo este bloque de código:
String x = "Hello ++ World!";
if(x.contains(" ++ "))
System.out.println(x.split(" ++ ")[0]);
¿Por qué es que cuando ejecuto el código recibo de la salida:
Hello ++ World!
en lugar deHello
?
Es obvio que tiene algo que ver con el split()
, sin embargo, no puedo entenderlo.
Nikolas:
El método String::split
utiliza Regex para la división. Su expresión " ++ "
es una expresión regular y el +
personaje tiene un significado especial. A partir de la documentación:
Divide esta cadena alrededor de coincidencias de la expresión regular dada.
Tienes que escapar estos caracteres:
System.out.println(x.split(" \\+\\+ ")[0]);