2010-06-05 53 views
4

我有一個問題,什麼是最好的方式來追加ints和字符串來建立一個新的字符串?在分配調試工具中,如果我使用operator +,我會看到太多的分配。Android/Java追加字符串+ int

但我也嘗試過使用StringBuffer,並且仍然有太多的分配。

任何人都可以幫到我嗎?

感謝

+1

你可能會喜歡這個,關於細節的討論可能會讓某些東西變得更有效率(包括字節碼解析!)http://stackoverflow.com/questions/2971315/string-stringbuffer-and-stringbuilder/ – bakkal 2010-06-05 01:51:21

回答

12

使用StringBuilderStringBuffer但爲了避免重新分配足夠的初始容量。默認容量是16,所以一旦超過了,數據就必須複製到一個更大的地方。使用append而不是+

int integer = 5; 

StringBuilder s = new StringBuilder(100); 
s.append("something"); 
s.append(integer); 
s.append("more text"); 

將預先分配100個插槽。

參考:您已指定您需要創建一個「新的字符串」,如果要創建任何比這更多的對象http://developer.android.com/reference/java/lang/StringBuilder.html

0

,你應該能夠優化他們離開。

注意:可能會刪除所有分配,但只能通過在您創建的字符串的整個生命週期中傳遞StringBuilder或類似內容。根據你的使用方式,這可能也可能不簡單。