"Jugar" con un string

I?
02 de Marzo del 2004
Hola antes de nada,

si tenemos un string bastante largo, y queremos cambiar una serie de letras por un símbolo, ¿cómo podría hacerlo? No me sirve el método que cambia una letra por otra, lo necesito para que cuando encontremos un determinado patrón en el string(por ejemplo &lt;) lo transforme en un '<'

Vamos, lo que quiero preguntar es si existe algún método para hacer esto o lo voy a tener que programar yo mismo.

Gracias por su atención.

Dr Goto 10
02 de Marzo del 2004
La que te propongo es una solucion recursiva, usa el metodo subString(int,int) de la clase String

cad = cadena en la que vas a realizar los cambios
oldPat = el patron que estas buscando en cad
newPat = el patron de reemplazo

public String change (String cad, String oldPat, String newPat)
{
// Si la longitud de la cadena es menor al patron buscado
// retorno la cadena
if (cad.length() < oldPat.length())
return cad;
else
{
// Obtengo de la cadena una subcadena de igual tamaño al patron
// buscado
String aux = cad.substring(0,oldPat.length());

// si el segmento de cadena es igual al patron buscado retorno
// el patron de remplazo concatenadolo con lo retorna la llamada
// recursiva del metodo con el resto de la cadena
if (aux.equals(oldPat))
return newPat + change(cad.substring(oldPat.length(),cad.length()),oldPat,newPat);

// si el segmento de cadena no es igual retorno el primer
// caracter de la cadena concatenado con lo que rotorna la llamada
// recursiva del metodo con el resto de la cadena
else
return cad.substring(0,1)+ change(cad.substring(1,cad.length()),oldPat,newPat);
}
}

Heihachi
02 de Marzo del 2004
La clase String tiene el método replaceAll(String,String) que hace lo que quieres.

Creo que a partir del 1.4

Saludos!

Cuchu
02 de Marzo del 2004
Por que no usas un StringBuffer?