Google

22 мая 2013 г.

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 example

This is new StringBuilder content 
Для StringBuffer-а принцип такой же.


0 comments:

Отправить комментарий

Social