"Jugar" con un string
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 <) 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.
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 <) 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.
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);
}
}
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);
}
}
La clase String tiene el método replaceAll(String,String) que hace lo que quieres.
Creo que a partir del 1.4
Saludos!
Creo que a partir del 1.4
Saludos!