2010-06-05 3 views
4

У меня вопрос, как лучше всего добавить INT и Строки для создания новой строки? В средстве отладки выделения я вижу слишком много распределений, если я использую оператор +.Android/Java Append String + int

Но я пробовал также с StringBuffer и все еще слишком много распределений.

Кто-нибудь может мне помочь?

Благодаря

+1

Вам может понравиться это, много обсуждений деталей, которые могут сделать что-то более или менее эффективным (включенное байткод!) Http://stackoverflow.com/questions/2971315/string-stringbuffer-and-stringbuilder/ – bakkal

ответ

12

Использование StringBuilder или StringBuffer но с адекватной начальной емкости, чтобы избежать повторного распределения. Емкость по умолчанию - 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 или чего-то подобного на протяжении всей жизни созданной вами строки. Это может быть или не быть простым в зависимости от того, как вы его используете.

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