开发者

Android/Java Append String + int

i ha开发者_开发知识库ve a question, what is the best way to append ints and Strings to build a new String? In the allocation debug tool i see too much allocations if i use the operator +.

But i have tried also with StringBuffer and there are still too much allocations.

Anyone can help me?

Thanks


Use StringBuilder or StringBuffer but with adequate initial capacity to avoid re-allocation. The default capacity is 16, so once you exceed that, the data has to be copied into a new bigger place. Use append not +.

int integer = 5;

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

Will allocate 100 slots upfront.

Reference: http://developer.android.com/reference/java/lang/StringBuilder.html


You have specified you need to create a "new String", if you are creating any more objects than that, you should be able to optimise them away.

Note: it may be possible to remove all allocation, but only by passing the StringBuilder or something similar throughout the life of the string your have created. This may or may not be simple depending on how you use it.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜