我有一个问题,是什么是追加int和Strings来构建新String的最佳方法?在分配调试工具中,如果我使用operator +,我会看到太多的分配。
但我也尝试使用StringBuffer,但仍有太多的分配。
任何人都可以帮助我?
由于
答案 0 :(得分:13)
使用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
答案 1 :(得分:0)
您已指定需要创建“新字符串”,如果您要创建更多对象,则应该能够优化它们。
注意:可以删除所有分配,但只能在您创建的字符串的整个生命周期中传递StringBuilder或类似内容。根据您的使用方式,这可能会也可能不会很简单。