Java: очищаемм содержимое StringBuilder/StringBuffer
Для сложения большого количества строк гораздо эффективнее использовать объект StringBuilder
(в многопоточной среде StringBuffer
). Но иногда возникает необходимость в очистке содержиммого StringBuilder
-а. К сожалению данный класс не имеет метода, который бы очищал его содержимое. Но выход из ситуации есть: можно воспользоваться методом delete(int start, int end)
класса StringBuilder
, который удаляет строчки начиная с позиции start
до позиции end
.
В качестве начальной позиции необходимо указать 0, в в качестве конечной позиции - длинну содержимого StringBuilder-а. Выглядеть это все будет приерно так:
sb.delete(0, sb.length());
Пример кода:
public class Test {
public static void main (String[] args) {
StringBuffer sb = new StringBuffer();
sb.append("This is StringBuilder ");
sb.append("example");
System.out.println("StringBuilder content before cleaning: \n" +
sb.toString());
//removing StringBuilder content
sb.delete(0, sb.length());
sb.append("This is new StringBuilder content");
System.out.println("\n" + sb.toString());
}
}
Вывод результатов:
StringBuilder content before cleaning: This is StringBuilder exampleThis is new StringBuilder content
Для StringBuffer-а принцип такой же.