我需要從csv文件中讀取數據,並且將更方便的數據放到2D數組中(我的腦海裏最容易使用此「時間表」數據) 。 每個文件的行包含在以下格式的信息:從csv文件中提取數據並將其放入2D數組 - 重構
Instructor, Course, Group, Student, Result
如下例子:
Paul Schwartz,Introduction to Computer Architecture,I1,Ben Dunkin,88
Muhamed Olji,Object Oriented Programming,I4,Mike Brown,73
但我的代碼需要一些簡化。但我不知道如何使它更容易,並要求你。
代碼:
private String[][] fileContent(String pathToCSVFile) {
final int ROWS = 100;
final int COLUMNS = 5;
String fileData[][] = new String[ROWS][COLUMNS];
Scanner scanner = new Scanner(pathToCSVFile);
boolean done = false;
int i, j;
while (!done) {
for (i = 0; i >= 0; i++) {
for (j = 0; j >= 0; j++) {
String str[] = scanner.nextLine().split(",");
for (int element = 0; element < str.length; element++) {
fileData[i][element] = str[element];
if (i >= ROWS) {
Arrays.copyOf(fileData, fileData.length * 2);
}
}
}
}
if (!scanner.hasNextLine()) done = true;
}
return fileData;
}
- 如何重構此代碼段爲更好的簡單?
- 對於部分填充的數組是否存在更好的方法(比
Arrays.copyOf(fileData, fileData.length * 2)
)?
如果簡單是你的目標,使用CSV庫,如openCSV,它有一個'列表 lines = new CSVReader(reader).readAll();'方法...然後你的方法成爲一線(可能兩個)。 –
assylias
請考慮在http://codereview.stackexchange.com/上發佈此類問題。該網站應該更合適。 –
@assylias我[嘗試這種方式](http://pastebin.com/sfizSsuc)但從List轉換爲數組有點問題。任何建議也可以在這裏找到。 –