Java:从Arraylist获取字符串

时间:2012-03-20 02:27:04

标签: java string list arraylist

当我使用for循环时(如此:)

  StringBuilder string = new StringBuilder();
    for(int i1 = 0; i1 < array.size()){
      string.append(arraylist.get(i).toString());
    } 

我得到了outOfBouds崩溃。我需要按对象读取arraylist对象,所以     arraylist.toString() 没有好处。

任何帮助?感谢

5 个答案:

答案 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

这种混淆可能是由使用非描述性变量名称引起的。例如,我看到arrayarraylist - 那些应该是相同的吗?

所以第一个问题就是清理一些代码。如果那不是确切的代码,那么告诉我们是什么。另请注意,您可以通过缩进所有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。