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.
精彩评论