Avatar ·

Cómo limpiar StringBuilder en Java: formas correctas y trampas

¡Hola, colegas! Soy un desarrollador Java principiante y me encontré con este problema: en un bucle uso StringBuilder para acumular cadenas, y luego necesito limpiarlo antes de la siguiente iteración. Al principio intenté hacer esto: ```java StringBuilder sb = new StringBuilder("Hello"); sb.append(" World"); System.out.println(sb); // Hello World // Intento limpiar sb = new StringBuilder(); ``` Pero esto crea un nuevo objeto, y el viejo permanece en memoria — no es muy eficiente. Luego me topé con el método `delete()` y probé: ```java sb.delete(0, sb.length()); ``` Esto funciona, pero no estoy seguro de que sea la forma óptima. También vi en algún lado el método `setLength(0)`, pero no entendí cómo funciona. En resumen, la pregunta: ¿cómo limpiar StringBuilder de forma correcta y eficiente? ¿Cuáles son las formas? ¿Hay diferencia entre `delete()`, `setLength(0)` y crear un nuevo objeto? ¿Y qué hay del método `toString()`? ¿Afecta de alguna manera el estado interno? Agradecería una explicación detallada con ejemplos. Gracias de antemano.