我想使用 for 循环从数组中打印多个字符串,它将打印完整的名字和姓氏,但仅打印一次。这是我的方法。
这是我得到的输出:
“名字 第二名,”
应该打印多个全名。
最佳答案
这里的问题是,在每次迭代中,您都会为列表创建一个新的内存位置,因此每次循环执行时,的值>列表被覆盖。您可以通过附加到列表来解决此问题,而不是在每次迭代中更改列表的值。
附注,由于 Java 中的字符串是不可变的,因此对于 for 循环的每次迭代,都会为 list 分配新的内存。这不是很有效。您应该使用可变的 StringBuilder。它看起来像这样。
StringBuilder str = new StringBuilder(list);
然后你可以追加到 str :
str.append("any string");
这相当于str +“任意字符串”
使用 StringBuilder,内存将只分配给 str 一次,所有更改都会到位,效率更高。最后,您想要返回一个 String 对象,以便可以调用 StringBuilder 对象上的方法 toString() 将其转换回 String。
所以,最终它看起来像这样:
public String getTANames() {
StringBuilder str = new StringBuilder("");
for(int i = 0; i < TAList.length; i++){
str.append(TAList[i].first + " " + TAList[i].second + ", ");
}
return str.toString();
}
关于java - 将数组中的多个字符串打印为单个字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42307192/