gpt4 book ai didi

java - 如何使用java集合将数据存储在字符串数组中

转载 作者:行者123 更新时间:2023-12-02 01:44:06 27 4
gpt4 key购买 nike

我已将数据存储在 List<String[]> 中并且需要使用循环将这些数据存储到另一个字符串数组中。我创建了一个字符串数组( value )并在其中存储数据,但问题是第一个元素在循环内被第二个元素替换,并且它只会显示循环末尾的最后一个元素。

CSVReader reader = new CSVReader(new FileReader(csvfile));
List<String[]> data = reader.readAll();
String[] values = new String[5];
for (int i = 1; i < 5; i++) {
values = data.get(i);
System.out.println(values[1]); // data is getting replaced here
}
System.out.println(values[1]); // this will show only the last stored value

最佳答案

  1. 列表采用 0 索引,因此除非您有意跳过第一个元素,否则不要在 1 处而不是 0 处开始循环迭代>.
  2. 是的,在循环后执行最后一个 println 时,仅显示与最后一个 String[] 相关的数据,因为在每次迭代中您都会更新values = data.get(i); 来存储当前的 String[],从而得到上述结果。
  3. 您可能需要一个 String[][] 而不是 String[],因为每个 String[] 代表文件的一行.

因此,假设您只想从 data 获取前五行,您可以这样做:

String[][] lines = data.subList(0, 5).toArray(String[][]::new);

或者对于所有读取的行:

String[][] lines = reader.readAll().toArray(String[][]::new);

您可以使用以下方法进行测试:

System.out.println(Arrays.deepToString(lines));

关于java - 如何使用java集合将数据存储在字符串数组中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53964361/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com