我正在为学校做作业(所以我很遗憾不会使用第三方库),目标是将csv文件读入数组,以不同的方法处理,然后将其打印到另一个数组中。这就是我到目前为止所得到的错误:
Type mismatch: cannot convert from List<String> to Collection<? extends String[]>.
这是我的代码:
package client.java;
import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
public abstract class Client{
String file = "bank-Detail.csv";
ArrayList<String[]> bank = new ArrayList<>();
public Client(String file) {
this.file = file;
}
public void readData() throws IOException {
int count = 0;
String file = "bank-Detail.txt";
try {
BufferedReader br = new BufferedReader(new FileReader(file));
String line = "";
while ((line = br.readLine()) != null) {
bank.addAll(Arrays.asList(line.split(",")));
该行(Arrays.asList(line.split(“,”)));是我得到错误的地方。
String[] entries = line.split(",");
String[][] numbers = (String[][]) bank.toArray(new String[bank.size()][12]);
}
} catch (FileNotFoundException e) {
}
}
public void processData() {
}
public void printData() {
}
答案 0 :(得分:0)
ClientID
是一个数组列表,所以不是做
ArrayList<String[]> bank
你只需要做
bank.addAll(Arrays.asList(line.split(",")));
Here用于split方法的javadoc,它返回一个bank.add(line.split(","));
数组,这是我们需要添加到列表中的内容。
答案 1 :(得分:0)
您的列表bank
的每个条目都是String
的阵营。但
但是在这一行
bank.addAll(Arrays.asList(line.split(",")));
您正尝试使用List<String>
向bank
添加字符串addAll
的列表。但是,如果您想使用addAll
,则必须添加List<String []>
。
您的问题有一个小问题:
bank.add(line.split(","))
由于line.split(",")
将返回String
的数组。
你很高兴。