2015-05-12 131 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

這只是整個代碼的一部分,它用於在將它與來自Web服務的ID附加在一起之後與它進行比較。我清除它,因爲它被稱爲幾次。 –

回答

1

在我發佈我的答案之前,我假設您正在循環中使用StringBuilder,並且您可能需要每隔幾次迭代才能清空它並從一個空的StringBuilder開始。在這種情況下,我可以想到兩種方法:

  • 在正在使用的字符串生成器上調用setLength(0)。我比delete更喜歡這個,因爲我覺得這樣更整齊一些。
  • 或者分配一個新的而不是清除緩衝區。這可能不是一個理想的選擇,但仍然是一個選擇。
2

這將是更有效的調用

sb.setLength(0);

因爲這只是一個方法調用,而不是兩個。

相關問題