Ver Mensaje Individual
  #1 (permalink)  
Antiguo 08/01/2009, 03:16
Avatar de javimartinez
javimartinez
 
Fecha de Ingreso: marzo-2003
Ubicación: Leganés (Madrid)
Mensajes: 284
Antigüedad: 21 años, 2 meses
Puntos: 1
Duda: String, replaceAll y caracteres de escape

Hola,

Estoy intentando reemplazar en una cadena de texto la subcadena \, (es una barra invertida y una coma). Para ello he provado con el siguiente código (entre muchos, este me parece el más lógico):

Código:
String a = <<leo de un fichero el siguiente texto, por ej: "Hola \, que tal">>

int indexComaEscapada = a.indexOf("\\,");
if (indexComaEscapada>=0)
      a = a.replaceAll("\\,", ",");
Como resultado me queda exactamente la cadena original. Sin embargo, si pruebo a sustituirlo así:

Código:
a=a.replaceAll("\\,"pepe")
la cadena que me resulta sería

"Hola \pepe que tal"

es decir, me sustituye la coma por "pepe", pero pasa totalmente de las barras.

¿Alguna idea de como realizar la sustitución? (Bueno, el caso ya lo tengo solucionado haciendo dos substring con el indexOf, el cual si funciona, pero por curiosidad me gustaría saber si se puede hacer con el replaceAll) ¿Sabeis por qué pasa totalmente de las barras escapadas en el replaces (pese a que en la parte de patrones aparece la \\ como caracter de escape)? Por cierto, estoy con java 1.4.2

Gracias y un saludo
__________________
Javi Martínez

Web: Acertijolandia Blog: A Entretenerse