Al hacer la concatenación de un montón de cuerdas, que se han recomendado para hacerlo usando un StringBuilder
como tal:StringBuilder vs Cadena considerando reemplazar
StringBuilder someString = new StringBuilder("abc");
someString.append("def");
someString.append("123");
someString.append("moreStuff");
en contraposición a
String someString = "abc";
someString = someString + "def";
someString = someString + "123";
someString = someString + "moreStuff";
que daría lugar a la creación de bastantes Cuerdas, a diferencia de una.
Ahora, tengo que hacer una cosa similar, pero en lugar de utilizar la concatenación que utilizar el método de cadena replace
como tal:
String someString = SOME_LARGE_STRING_CONSTANT;
someString = someString.replace("$VARIABLE1", "abc");
someString = someString.replace("$VARIABLE2", "def");
someString = someString.replace("$VARIABLE3", "123");
someString = someString.replace("$VARIABLE4", "moreStuff");
Para obtener el mismo resultado utilizando StringBuilder, tengo que hacer esto, sólo por una reemplazar:
someString.replace(someString.indexOf("$VARIABLE1"), someString.indexOf("$VARIABLE1")+10, "abc");
Así que mi pregunta es: "¿es mejor utilizar String.replace y tienen un montón de cadenas adicionales creados, o para usar StringBuilder todavía, y tienen un montón de líneas de largo aliento como el ¿uno arriba?
Si está generando problemas de Desempeño, cambiarlo. Si no hay cambios más importantes que realizar, cámbialo.Si la entrada es realmente muy grande y se usa con mucha frecuencia, cámbiela. Por cierto, el segundo enfoque, no funcionará, ya que solo lo reemplazará una vez, tiene que ponerlo en un ciclo while. Eche un vistazo a mi respuesta. – OscarRyz