public static String replace(String source,String target,String replacement){
  StringBuilder sbSource=new StringBuilder(source);
  StringBuilder sbSourceLower=new StringBuilder(source.toLowerCase());
  String searchString=target.toLowerCase();
  int idx=0;
  while ((idx=sbSourceLower.indexOf(searchString,idx)) != -1) {
    sbSource.replace(idx,idx + searchString.length(),replacement);
    sbSourceLower.replace(idx,idx + searchString.length(),replacement);
    idx+=replacement.length();
  }
  sbSourceLower.setLength(0);
  sbSourceLower.trimToSize();
  return sbSource.toString();
}

public static String replace ( String source , String target , String replacement ) { StringBuilder sbSource = new StringBuilder ( source ) ; StringBuilder sbSourceLower = new StringBuilder ( source . toLowerCase ( ) ) ; String searchString = target . toLowerCase ( ) ; int idx = 0 ; while ( ( idx = sbSourceLower . indexOf ( searchString , idx ) ) != - 1 ) { sbSource . replace ( idx , idx + searchString . length ( ) , replacement ) ; sbSourceLower . replace ( idx , idx + searchString . length ( ) , replacement ) ; idx += replacement . length ( ) ; } sbSourceLower . setLength ( 0 ) ; sbSourceLower . trimToSize ( ) ; return sbSource . toString ( ) ; }
reemplaza todas las apariciones del string buscado con el string de reemplazo
