Java - Reemplazar cadenas

 
Vista:

Reemplazar cadenas

Publicado por javier (2 intervenciones) el 26/03/2001 12:25:04
Como puedo reemplazar en una variable string un trozo de texto por otro
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Reemplazar cadenas

Publicado por Luli (24 intervenciones) el 26/03/2001 13:05:12
Hola:

No se me ocurre ninguna manera elegante de hacerlo, pero a lo bruto, sería algo así:

public String reemplazaTexto(String texto, String textoASustituir, String textoAInsertar){

int n = texto.indexOf(textoASustituir);
String aux = "";

if(n<0){
System.out.println("No se encuentra el texto indicado");
}
else
{
String aux = texto.substring(0,n) +textoAInsertar;

n = n + textoASustituir.length;
aux = aux + texto.substring(n,texto.length-1);

}

return aux;
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Reemplazar cadenas

Publicado por javier (2 intervenciones) el 26/03/2001 14:24:57
Gracias lourdes, me ha servido mucho tu ayuda y tu función, aunque despues del length va un parentesis, y la variable aux esta declarada dos veces, pero aun asi eres la primera persona que me responde tan bien.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Reemplazar cadenas

Publicado por juan david (1 intervención) el 16/11/2008 04:47:06
Muchas gracias por el codigo. Hubo que modificar algunas cosas pero igual estuvo bien..

gracias.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Reemplazar cadenas

Publicado por ricardo (1 intervención) el 04/03/2010 04:26:12
como puedo sustituir una parte de una cadena por otra
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Reemplazar cadenas

Publicado por Lisa (1 intervención) el 08/11/2011 17:40:03
muy bueno el algoritmo solo q cuando se concatena aux en la ultima linea la operacion lengh-1 me come(a lo bruto) un caracter,en mi caso tube q sacarlo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Reemplazar cadenas

Publicado por Xavi Canal (241 intervenciones) el 26/03/2001 13:18:54
Nas,

lo que dice Luli ta bien, existe el método
replace que sirve para reemplazar carácteres
(no Strings) quizá te sirva de algo

tuString.replace (char1, char2);

att. Xavi Canal
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Reemplazar cadenas

Publicado por Alejandro (9 intervenciones) el 29/03/2001 15:19:36
Lo que dice Luli está bien, pero sólo sirve para la primera ocurrencia de la palabra que se quiere sustituir, es decir, si la cadena inicial es:

"El texto a cambiar por otro texto"

y se quiere cambiar la palabra "texto" por la palabra "cambio", con el método de Luli se obtendría:

"El cambio a cambiar por otro texto"

Cuando es posible que lo que se quiera es cambiar toda ocurrencia de la palabra texto, es decir, obtener:

"El cambio a cambiar por otro cambio"

Para este caso puedes usar el método que te paso a continuación, que es genérico y bastante elegante (como suele ocurrir cuando se usa recursividad) aunque para cadenas muy grandes quizás no sea conveniente por el alto consumo en memoria de los procesos recursivos.

public String sustituir(String cadena, String quitar, String poner)
{
String resultado = cadena;
if (cadena == null || quitar == null || poner == null) return resultado;
if (!cadena.equals("") && !quitar.equals(""))
{
int posicion = cadena.indexOf(quitar);
if (posicion!=-1){
int tamanio = quitar.length();
String resto = cadena.substring(posicion+tamanio);
resultado = cadena.substring(0,posicion) + poner + sustituir(resto,quitar,poner);
}
}
return resultado;
}

P.D.: Probablemente tendrás que ordenar el código pues al mandarlo por correo habrá perdido su sangrado original.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Reemplazar cadenas

Publicado por Alejandro (9 intervenciones) el 03/04/2001 10:30:59
Una versión más completa, donde se puede indicar el número de ocurrencias de una cadena que se quiere sustituir por otra, a través del parametro "veces".

/*
Devuelve un String donde se ha reemplazado en el parametro cadena las ocurrencias del parámetro quitar por lo indicado en el parámetro poner.
El parámetro veces indica el número de ocurrencias que quieren ser sustituidas.
veces = -1 indica que todas las veces.
*/
public String sustituir(String cadena, String quitar, String poner, int veces)
{
String resultado = cadena;
if (veces < 1 && veces != -1) return cadena;
if (cadena == null || quitar == null || poner == null) return resultado;
if (!cadena.equals("") && !quitar.equals(""))
{
int posicion = cadena.indexOf(quitar);
if (posicion!=-1)
{
int tamanio = quitar.length();
String resto = cadena.substring(posicion+tamanio);
if (veces==-1)
{
resultado = cadena.substring(0,posicion) + poner + sustituir(resto,quitar,poner,-1);
}
else
{
resultado = cadena.substring(0,posicion) + poner + sustituir(resto,quitar,poner,veces-1);
}
}
}
return resultado;
}

Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar