Avatar ·

Como limpar StringBuilder em Java: formas corretas e armadilhas

Olá, colegas! Sou um desenvolvedor Java iniciante e me deparei com o seguinte problema: em um loop, uso StringBuilder para acumular strings e, em seguida, preciso limpá-lo antes da próxima iteração. Primeiro, tentei fazer assim:\n\n```java\nStringBuilder sb = new StringBuilder("Hello");\nsb.append(" World");\nSystem.out.println(sb); // Hello World\n\n// Tentando limpar\nsb = new StringBuilder();\n```\n\nMas isso cria um novo objeto, e o antigo permanece na memória — não é muito eficiente. Depois, encontrei o método `delete()` e tentei:\n\n```java\nsb.delete(0, sb.length());\n```\n\nIsso funciona, mas não tenho certeza se é a forma ideal. Também vi em algum lugar o método `setLength(0)`, mas não entendi como ele funciona.\n\nResumindo, a pergunta é: como limpar StringBuilder de forma correta e eficiente? Quais são as formas?