2015-05-12 3 views
1

Я хотел бы спросить, является ли это хорошим способом очистки/опорожнения StringBuilder? Он завернут в метод, и он называется несколько раз, является ли этот поток безопасным? Разве это не потребляет много памяти? Было бы лучше, если бы я создал StringBuilder вне метода и в классе вместо этого?Это хороший способ очистки StringBuilder?

private void callMe(){ 
    StringBuilder builder = new StringBuilder(); 
    builder.delete(0, builder.length()); 
} 

builder.append("some ID"); 

if (builder.toString().contains("some other ID")) 
    Show("Information") 
else 
    Show("Invalid ID") 
+2

Почему после создания нового объекта вы создаете 'builder.delete (0, builder.length());'? – Maroun

+0

Почему вы хотите удалить только что созданные записи? – chokdee

+0

Это всего лишь часть всего кода, он используется для сравнения строки с ней после добавления ее с идентификатором из веб-службы. Я очищаю его, так как он называется несколько раз. –

ответ

1

Прежде чем я отправлю свой ответ, я предполагаю, что вы используете StringBuilder в цикле и каждые несколько итераций, которые вы, возможно, захотите его очистить, и начните с пустого StringBuilder. В этом случае я могу думать о двух подходах:

  • invoke setLength(0) на построителе строк, который вы используете. Я предпочитаю это более delete, поскольку я чувствую, что это более аккуратно.
  • Вместо того, чтобы очищать буфер, вместо этого вместо него нужно назначить новый. Возможно, это не идеальный вариант, но вариант.
2

Было бы более эффективным, чтобы позвонить

sb.setLength (0);

Потому что это только один вызов метода, а не два.

Смежные вопросы