首页 > 解决方案 > 如何将某些数据从 csv 文件添加到 ArrayList

问题描述

我有三个 *.csv 文件,我正在使用一个界面来比较对象。

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

例如,我只需要items[1]which is yearID, items[2]which is teamID, items[11]which is homeRuns, items [12]which is RBIvalue。

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

击球.cvs

playerID yearID stint teamID lgID G AB RH 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 `

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]));
            
        }
    }
    
}

玩家.java

import java.util.ArrayList;
import java.util.Arrays;


public class Players {
    private ArrayList Player[];


public Players (String BatData, String PitData,String MasterData) {
    
}
}

标签: javacsvsortingarraylistfilereader

解决方案


几个重要的点。您不必要地循环 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
  }
}

推荐阅读