Mi duda es la siguiente:
Tengo una string "aaaSbc", y me gustaria sustituir desde donde esta la S por alguna otra string por ejemplo cambiar la S por "bcd", de modo que me quede una string "aaabcdbc"
Lo que hago es lo siguiente:
Código:
String original="aaaSbc";
String s="S";
String cambio="bcd";
int n=cambio.lenght()-s.lenght();
char[] nueva=new char[original.lenght()+n];
char[] orig=original.toCharArray();
char[] camb=cambio.toCharArray();
int z=0;
for(int h=0;h<i;h++)//i es la posicion donde esta S
{
nueva[h]=orig[h];
z=h;
}
z+=s.lenght();//lo hago con el fin de saber en que posicion seguirle en orig[]
int cont=0,h;
for(h=i;h<(i+cambio.lenght());h++)
{
nueva[h]=cambio[cont];
cont++;
}
for(h=h;h<nueva.lenght()<h++)
{
nueva[h]=orig[z];
z++;
}
String stg=new String(nueva);
El problema que tengo es que no agarra con todas los strings que ingreso, ya que la S puede estar al inicio,en medio o al final, ademas de que aveces igual se puede cambiar una combinacion de letras, por ejemplo que "aS" se cambie por "cc" de modo que quede "aaccbc" y de igual modo esa combinacion de letras puede estar al inicio,en medio o al final.String s="S";
String cambio="bcd";
int n=cambio.lenght()-s.lenght();
char[] nueva=new char[original.lenght()+n];
char[] orig=original.toCharArray();
char[] camb=cambio.toCharArray();
int z=0;
for(int h=0;h<i;h++)//i es la posicion donde esta S
{
nueva[h]=orig[h];
z=h;
}
z+=s.lenght();//lo hago con el fin de saber en que posicion seguirle en orig[]
int cont=0,h;
for(h=i;h<(i+cambio.lenght());h++)
{
nueva[h]=cambio[cont];
cont++;
}
for(h=h;h<nueva.lenght()<h++)
{
nueva[h]=orig[z];
z++;
}
String stg=new String(nueva);
Espero su ayuda,comentarios,criticas...
Desde ya gracias