2010-02-11 28 views

Respuesta

65
str = str.replaceAll("\\\\", ""); 

o

str = str.replace("\\", ""); 

replaceAll() trata el primer argumento como una expresión regular, por lo que debe duplicar la barra invertida. replace() lo trata como una cadena literal, por lo que solo tiene que escapar una vez.

4

puede simplemente usar String.replaceAll()

String foo = "hai how are\\ you?"; 
String bar = foo.replaceAll("\\\\", ""); 
+0

bueno, gracias ........... –

+2

Umm ... ¿es eso correcto? ¿No necesitas escapar del '\' dos veces? Una vez para la cadena literal y una para la expresión regular; p.ej. 'foo.replaceAll (" \\\\ "," ")' –

+0

@Stephen, parece que estás en lo correcto, solucionado en consecuencia –

-5

Cadena foo = "hai how are \ you?"; String bar = foo.replaceAll ("\\", ""); No funciona java.util.regex.PatternSyntaxException se produce .... ¡Descubre el motivo! @Alan ya ha respondido ... bueno

String bar = foo.replace ("\\", ""); Funciona

Cuestiones relacionadas