【问题标题】:Java: Getting A String From An ArraylistJava:从 Arraylist 中获取字符串
【发布时间】:2012-04-04 13:19:25
【问题描述】:
当我使用 for 循环时(像这样:)
StringBuilder string = new StringBuilder();
for(int i1 = 0; i1 < array.size()){
string.append(arraylist.get(i).toString());
}
我遇到了 outOfBouds 崩溃。我需要逐个对象读取arraylist对象,所以
arraylist.toString()
没用。
有什么帮助吗?谢谢
【问题讨论】:
标签:
java
string
list
arraylist
【解决方案1】:
你需要增加循环控制变量。
for(int i=0; i<arraylist.size();i++){
string.append(arraylist.get(i).toString());
}
或者
for(Object str:arraylist){
string.append(str.toString());
}
【解决方案2】:
您在循环中使用i1,但您正在访问元素i。
这种混淆可能是由使用非描述性变量名引起的。例如,我看到 array 和 arraylist - 它们应该是相同的吗?
所以第一个问题就是清理一些代码。如果那不是确切的代码,那么请告诉我们是什么。另请注意,您可以通过缩进所有 4 个空格来制作代码块。向我们展示堆栈跟踪是什么也是一个好主意。
理想情况下,我们可以编译一个小而完整的程序,向我们展示错误会产生最快的纠正答案。您甚至可能在创建该小程序时发现问题。
【解决方案3】:
仅仅三行代码就有这么多错误。真的。试试这个:
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());
}
【解决方案4】:
我会这样写:
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();
}
您是否考虑过如何在串联版本中将每个字符串分开?想要每个之间有一个空间吗?这看起来不是很有用。
【解决方案5】:
如果您使用任何类型的 Object,那么您必须重写 toString() 方法。并提供要在其中附加字符串的字符串。