package edu.nyu.cs.jg6155;
import java.util.Arrays;
import java.util.Scanner;
import java.io.File;
import java.io.FileNotFoundException;
//Data/CSV file used: https://data.cityofnewyork.us/Education/2016-Public-Data-File-Teacher/w9if-3pyn
public class main {
public static void main(String[] args) throws FileNotFoundException {
//filereader will spit out each thing in the csv separated by commas instead of whitespace
Scanner fileReader = new Scanner(new File("src/pupiltoteacher.csv")).useDelimiter(",");
//Appends each element of the file to a string
String filetext = "";
int f = 0;
while(fileReader.hasNext()) {
filetext += fileReader.next() + ",";
}
//creates a string array of the file elements
String[] file = filetext.split(",");
//creates a 2D array where 2darr[x][0] is the first element of each line
//z is the number of columns in the data
int z = 3;
String[][] fileInfo = new String[file.length/z][z];
//adds each element of the file to the 2D array
int count = 0;
for(int i = 0; i < file.length/z; i++) {
for(int j = 0; j < z; j++) {
fileInfo[i][j] = file[count];
count++;
System.out.print(fileInfo[i][j] + " ");
}
System.out.println();
}
}
Мой код не добавляет каждый элемент в строку при анализе файла, должно быть 4569, но только после ~ 3045 после удаления запятых в названиях школ. Первый и последний элементы в файле CSV и строке совпадают, я не знаю, что происходит неправильно.
Примечание. Нам не разрешено использовать какие-либо библиотеки синтаксического анализа CSV, мы должны использовать сканер.