DevBug blog

О Linux, Java, разработке ПО и не только

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-а принцип такой же.

comments powered by Disqus