Почему не каждый элемент в CSV-файле добавляется в строку? - PullRequest
0 голосов
/ 22 октября 2019
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, мы должны использовать сканер.

...