因此,任务是读取包含姓名、时间和原籍国等项目的 CSV 文件,然后将它们打印到控制台。我已经弄清楚如何循环它,但在第一行之后,对于接下来的一百个左右的输出,我得到的所有内容都是空,这些输出应该包含单独的名称时间等。这就是我所拥有的。
public class CSVReader {
public static void main(String[] args) throws IOException{
// TODO Auto-generated method stub
Scanner Scan = new Scanner(new File("./src/marathon.csv"));
Scanner timeScan = null;
int index = 0;
List<Racer> racerList = new ArrayList<>();
while(Scan.hasNextLine()){
timeScan = new Scanner(Scan.nextLine());
timeScan.useDelimiter(",");
Racer racer = new Racer();
while(timeScan.hasNext()){
String data = timeScan.next();
if(index==0)
racer.setFirstName(data);
else if(index==1)
racer.setLastName(data);
else if(index==2)
racer.setSexAge(data);
else if(index==3)
racer.setCountry(data);
else if(index==4)
racer.setPlace(data);
else if(index==5)
racer.setGunTime(data);
else if(index==6)
racer.setNetTime(data);
else if(index==7)
racer.setKm5(data);
else if(index==8)
racer.setKm10(data);
else if(index==9)
racer.setKm15(data);
else if(index==10)
racer.setKm20(data);
else if(index==11)
racer.setKm25(data);
else if(index==12)
racer.setKm30(data);
else if(index==13)
racer.setKm35(data);
else if(index==14)
racer.setKm40(data);
else if(index==15){
racer.setMinutesPerMile(data);
}
index++;
}
racerList.add(racer);
}
System.out.println(racerList);
}
}
最佳答案
您需要在每行之后将 index
重置为 0。
关于java - 在JAVA中读取和打印CSV文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27394041/