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.