gpt4 book ai didi

java - 如何将csv文件中的某些数据添加到ArrayList

转载 作者:行者123 更新时间:2023-11-30 06:07:29 24 4
gpt4 key购买 nike

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

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

例如,我只需要 items[1] (即 yearID)、items[2] (即 teamID) code>、items[11]homeRunsitems [12]RBI 值。

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

击球.cvs

玩家 ID 年号 ID 球队 ID lgID G AB R H 2B 3B HR RBI SB CS BB SO IBB HBP SH SF GIDPabercda01 1871 1 特罗纳 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]));

}
}

}

Players.java

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


public class Players {
private ArrayList Player[];


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

}
}

最佳答案

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

关于java - 如何将csv文件中的某些数据添加到ArrayList,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51004680/

24 4 0