我想将CSV数据文件中的数据分配到二维数组中。我编写了以下代码,但它只适用于1D数组。只要在下面的行中添加额外的方括号,就会发生错误。我是Java新手。请帮忙。
String[] pTEDATA = line.split(cvsSplitBy); // Before
String[][] pTEDATA = line.split(cvsSplitBy); // After
以下是整个代码:
import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
public class pTE {
public static void main(String[] args) {
pTE obj = new pTE();
obj.run();
}
public void run() {
String csvFile = "C:/Users/marathnayake/Downloads/new.csv";
BufferedReader br = null;
String line = "";
String cvsSplitBy = ",";
try {
br = new BufferedReader(new FileReader(csvFile));
while ((line = br.readLine()) != null) {
if(line.equals("")){
continue;
}
String[][] pTEDATA = line.split(cvsSplitBy);
//while (pTEDATA != null){
//System.out.println("[\'" + pTEDATA[0] + "\'], " + "[\'" + pTEDATA[1] + "\'], " + "[\'" + pTEDATA[2] + "\']" );
//}
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
if (br != null) {
try {
br.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
}
答案 0 :(得分:0)
您正在使用返回1D数组的string的split方法。您可以做的一件事是拆分线并获得1D阵列,然后使用这个1D阵列并根据需要将其转换为2D。
答案 1 :(得分:0)
2D阵列与1D阵列不是同一个对象。 String的split
方法返回一维数组。
您可以将split函数的结果指定为2D数组的第一个索引的元素:
e.g。
int numberOfLines = 10;//Replace with actual count
int numberOfCols = 10;//Replace with actual count
String[][] allMyLines = new String[numberOfLines][numberOfColumns]();
//... iterator stuff
allMyLines[currentLine] = line.split();