将列表存储到数组列表中的字符串

Posted

技术标签:

【中文标题】将列表存储到数组列表中的字符串【英文标题】:Storing a list to a string from an arraylist 【发布时间】:2021-09-24 07:35:07 【问题描述】:

我正在尝试显示来自 ArrayList 的所有字符串内容,但 ArrayList 的大小未知(使用 android Studio)。 比如:

fruit = new ArrayList<>()
veg = new ArrayList<>()

经过一些操作,现在故事ArrayList包含了一些信息,例如:

fruit = "apple", "orange", "banana", "peach",...;
veg = "cucumber", "spinach", "pumpkin", "broccoli",...;

我不知道水果和蔬菜的ArrayList在手术后多久了。但我知道水果和蔬菜的大小相同ArrayList。我想将每个列表存储为:

fruitOne = fruit(0), fruitTwo = fruit(1), fruitThree = fruit(2),...
vegOne = veg(0), vegTwo = veg(1), vegThree = veg(2),...

然后我想将它们一起显示为一个字符串,这样我就可以有一个字符串,例如:

String myStore = "I am selling" + fruitOne + " and " + vegOne + "/n" + fruitTwo + " and " + vegTwo + "/n" + fruitThree + " and " + vegThree"...;

我觉得它需要使用for 循环通过调用fruit(0), fruit(1),...,fruit(i) 来一一拉出每个列表。但是如何独立存储fruit(0), fruit(1),...,fruit(i) 的每个列表,以便我可以将它们连接在一起成为 myStore 的一个字符串?

所有教程都在讨论printlnlogd,因此它可以打印fruit(i)veg(i) 每个for 循环,但不能真正将fruit(i)veg(i) 作为变量存储到可以独立使用。

感谢您的帮助!

【问题讨论】:

如果您想将它们存储为变量,也可以使用 LinkedHashMap。以水果为关键,以蔬菜为价值。它会给你更多的控制权。 但我仍然不知道我的地图中有多少水果和蔬菜。而后来我想调用它的时候,我想我仍然需要使用 for 循环。 【参考方案1】:

我会使用StringBuilder 来构建字符串。

由于两个列表具有相同数量的元素,请使用简单的for 循环来迭代两个列表。

List<String> fruit = Arrays.asList("apple", "orange", "banana", "peach");
List<String> veg = Arrays.asList("cucumber", "spinach", "pumpkin", "broccoli");
StringBuilder sb = new StringBuilder();
sb.append("I am selling ");
int count = fruit.size();
for (int i = 0; i < count; i++) 
    sb.append(fruit.get(i));
    sb.append(" and ");
    sb.append(veg.get(i));
    sb.append("\n");

System.out.println(sb);

运行上述代码会产生以下字符串:

I am selling apple and cucumber
orange and spinach
banana and pumpkin
peach and broccoli

【讨论】:

谢谢,我试试,不过看起来不错。 嗨,我有一个问题。我试过了,它有效。但现在的问题是,如果我运行代码两次,“for 循环”附加的字符串也会加倍。所以它会说我在卖苹果和黄瓜、橙子和菠菜、香蕉和南瓜、桃子和西兰花、苹果和黄瓜、橙子和菠菜、香蕉和南瓜、桃子和西兰花。我试图将 sb.setLength(0) 放在 println(sb) 之后。但它什么也没做。 我用 logd 检查了在“for 循环”之前,sb 被清除(或者因为代码再次运行 new StringBuilder(),或者因为我在非常结束。但是代码记住它在前一次运行中的“for循环”附加了什么。sb.setLength(0)确实清除了sb(包括来自“for循环”的信息),但是当它运行时“for loop”第二次,它也从上一次“for loop”运行中提取信息。非常感谢您的帮助,谢谢!

以上是关于将列表存储到数组列表中的字符串的主要内容,如果未能解决你的问题,请参考以下文章

将整个列表写入java中的文件

如何将 Pandas Dataframe 中的字符串转换为列表或字符数组?

如何将 arrarylist 值存储到 sqlitedb 中?

当检查可以是字符串数组中的一个或多个项目时,如何将列表视图项目添加到数组中?

从Firestore获取一个ArrayList并从该列表中选择3个随机字符串

将字符串重新分配给数组中的一组值列表