如何将某些数据从csv文件添加到ArrayList

时间:2018-06-23 20:11:52

标签: java csv sorting arraylist filereader

我有三个* .csv文件,并且正在使用接口比较对象。

我的问题是:如何仅将某些数据添加到数组列表?

例如,我只需要items[1],即yearIDitems[2],即teamIDitems[11],即homeRuns,以及{ {1}},即items [12]的值。

如何在将它们添加为RBI类的值的同时将它们添加到arrayList中,然后将数组列表传递给另一个类呢?这是文件的前两行

Batting.cvs

playerID yearID stint teamID lgID G AB R H 2B 3B HR RBI SB CS BB SO IBB HBP SH SF GIDP abercda01 1871 1 TRO NA 1 4 0 0 0 0 0 0 0 0 0 0

Batter.java

Batter

Players.java

import java.util.ArrayList;
import java.util.Scanner;

public class Batter extends Player{
    private  int YearID;
    private String TeamID;
    private int HomeRuns;
    private int RBI;


public Batter(int yearID, String teamID, int homeRuns, int rBI) {
    super();
    YearID = yearID;
    TeamID = teamID;
    HomeRuns = homeRuns;
    RBI = rBI;
}


Batter() throws Exception{
ArrayList<String>  battingData= new ArrayList<String>();
ArrayList<String> masterData= new ArrayList<String>();
ArrayList<String> pitchingData= new ArrayList<String>();

Scanner myScan1= new Scanner(new File("Batting.cvs"));

while(myScan1.hasNext()) {
    while(myScan1.hasNext()) {
        battingData.add(myScan1.nextLine());
        String line= myScan1.nextLine();
        String items[]= line.split(",") 

    for( int i= 0; i<battingData.size(); i++){
        battingData.add(new Players(Integer.parseInt(items[0]));

        }
    }

}

1 个答案:

答案 0 :(得分:1)

一些要点。您不必要地循环了两次myScan1.hasNext()。 当您两次调用nextLine时,您还丢弃了一行。 我在下面提出了有关如何实现所需目标的建议。

while (myScan1.hasNext()) {
  String line = myScan1.nextLine();
  battingData.add(line);
  String items[]= line.split(",") 

  for( int i= 0; i<battingData.size(); i++){
    String yearID = items[1];
    String teamID = items[2];
    String homeRuns = items[11];
    String rbi = items[12];

    // do what you need to do with these variables
  }
}