我想获取ArrayList的每个元素并使用它来创建一个String:
为了更清楚,我想打印一个如下所示的字符串:
System.out.println(result);
element(0), element(1), element(2), element(3)
不幸的是,我只从ArrayList获取最后一个Integer的值,但是'元素的数量是'单词是正确的,所以我的实际结果字符串看起来像这样:
System.out.println(result);
element(3), element(3), element(3), element(3)
ArrayList只有4个元素:
[0, 1, 2, 3]
使用以下代码生成此错误的字符串:
List<Integer> intList = new ArrayList<Integer>();
int intValue;
String result;
int n = intList.size();
for (int i=0; i < n; i++) {
intValue = intList.get(i);
result = String.join(", ", java.util.Collections.nCopies(n, "element("+intValue+")"));
}
那么如何使用ArrayList的所有值创建正确的String?
答案 0 :(得分:2)
下面:
for ... {
result = String.join(...)
}
在你的循环中,你重新分配,在每次迭代过程中将字符串连接到你的结果。换句话说:在循环(n)中,你丢弃在循环中创建的内容(n-1)。
尝试使用+ =代替。或者只是选择:
StringBuilder builder = new StringBuilder;
for ... {
builder.append(...
}
String finalResult = builder.toString();
代替。
使用构建器: