2012-03-13 11 views
5

¿alguien puede aconsejar por qué encontré el índice fuera de la excepción de Bouns al ejecutar este método para reemplazar el valor por el signo $?No se puede reemplazar todo por el signo de dólar

E.g. me pase en un mensaje $$vmdomodm$$

message = message.replaceAll("$", "$"); 

Traté de mirar en este hilo del foro, pero no podía comprender el contenido

http://www.coderanch.com/t/383666/java/java/String-replaceAll

+0

Usted está replaceing $ $ con lo que significa que nada puede cambiar. Eso no tiene sentido. –

+0

'replaceAll' toma una expresión regular como argumento y la expresión' $ 'coincide con el final de una línea. ¿Qué esperas exactamente como resultado? –

+0

Lo siento, lo he actualizado, debería ser: message = message.replaceAll ("$", "$"); –

Respuesta

27

Es carácter especial es necesario utilizar carácter de escape

Try con esto \\$

y no tiene sentido en su código usted ar e intentar reemplazar el contenido con la misma salida

String message = "$$hello world $$"; 
message = message.replaceAll("\\$", "_"); 
System.out.println(message); 

__hello world __ 

actualización

String message = "$hello world $$"; 
    message = message.replaceAll("$", "\\$"); 
    System.out.println(message); 

salida

$hello world $$ 
+0

Lo siento, lo he actualizado, debería ser: message = message.replaceAll ("$", "$"); –

+0

¿Qué estás tratando de hacer en ese código? –

+0

Estoy tratando de convertir el código de entidad html $ a su código ASCII equivalente. –

3

Puesto que usted no está realmente utilizando cualquier expresión regular así que en vez de replaceAll usted debe utilizar String#replace método como este:

message = message.replace("$", "$"); 
Cuestiones relacionadas