当我使用for循环时(如此:)
StringBuilder string = new StringBuilder();
for(int i1 = 0; i1 < array.size()){
string.append(arraylist.get(i).toString());
}
我得到了outOfBouds崩溃。我需要按对象读取arraylist对象,所以
arraylist.toString()
没有好处。
任何帮助?感谢
答案 0 :(得分:4)
您需要增加循环控制变量。
for(int i=0; i<arraylist.size();i++){
string.append(arraylist.get(i).toString());
}
或者
for(Object str:arraylist){
string.append(str.toString());
}
答案 1 :(得分:3)
您在循环中使用i1
,但您正在访问元素i
。
这种混淆可能是由使用非描述性变量名称引起的。例如,我看到array
和arraylist
- 那些应该是相同的吗?
所以第一个问题就是清理一些代码。如果那不是确切的代码,那么告诉我们是什么。另请注意,您可以通过缩进所有4个空格来创建代码块。同样最好向我们展示堆栈跟踪是什么。
理想情况下,我们可以编译的一个小型完整程序向我们显示错误,这将产生最快的纠正答案。您甚至可以在创建该小程序时发现问题。
答案 2 :(得分:2)
只有三行代码中的错误很多。真。试试这个:
StringBuilder string = new StringBuilder();
for (int i1 = 0; i1 < arraylist.size(); i1++) {
string.append(arraylist.get(i1).toString());
}
或者这个:
StringBuilder string = new StringBuilder();
for (Object str : arraylist ) {
string.append(str.toString());
}
答案 3 :(得分:1)
我这样写:
public static String concat(List<String> array, String separator) {
StringBuilder builder = new StringBuilder(1024);
for (String s : array) {
build.append(s).append(separator);
}
return builder.toString();
}
您是否考虑过如何在串联版本中将每个字符串分开?想要每个之间有空间吗?这看起来不太有用。
答案 4 :(得分:0)
如果您使用任何类型的Object,则必须覆盖toString()方法。并提供要在其中追加String的String。