gpt4 book ai didi

java 从 csv 文件中读取并将其信息存储到 ArrayList

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:09:22 25 4
gpt4 key购买 nike

我是一个 java 新手,我需要一些帮助

所以这是我的主要方法:

RegistrationMethods dmv = new RegistrationMethods();
ArrayList<CarOwner> ItState = new ArrayList<CarOwner>();
dmv.processTextToArrayList(ItState);

我有一个名为 CarOwner 的类,它有 firstName、lastName、license、month、year 实例变量的 getter 和 setter。

这是我的 processTextToArrayList 方法的方法头:

public void processTextToArrayList(ArrayList<CarOwner> inList) throws IOException

此方法应该将新的 CarOwner 对象添加到传入的 inList CarOwner 集合中。对于 csv 文件的每一行,一个 CarOwner 对象被添加到 inList

我必须从 csv 文件读取到 arraylist我的 csv 文件包含如下内容:

Bunny Bugs ACB-123 5 2013

Bunny Honey DEF-456 9 2013

Bunny Lola GHI-789 3 2014

如何使用 while 循环对此进行编码?

编辑:

我的 CarOwner 类是:

public class CarOwner extends Citizen implements CarOwnerInterface, Serializable
{
private String license;
private int month, year;

public CarOwner()
{
super();
license = "Not Assigned";
month = 0;
year = 0;
}

public CarOwner(String inFirst, String inLast, String inLicense, int inMonth, int inYear)
{
super(inFirst, inLast);
license = inLicense;
month = inMonth;
year = inYear;
}

public void setLicense(String inLicense)
{
license = inLicense;
}

public String getLicense()
{
return license;
}

public void setMonth(int inMonth)
{
month = inMonth;
}

public int getMonth()
{
return month;
}

public void setYear(int inYear)
{
year = inYear;
}

public int getYear()
{
return year;
}

public int compareTo(Object o)
{
if ((o != null ) && (o instanceof CarOwner))
{
CarOwner otherOwner = (CarOwner) o;
if (otherOwner.compareTo(getYear()) > 0)
return -1;
else if (otherOwner.compareTo(getYear()) < 0)
return 1;
else if (otherOwner.equals(getYear()))
if (otherOwner.compareTo(getMonth()) > 0)
return -1;
else if (otherOwner.compareTo(getMonth()) < 0)
return 1;
else if (otherOwner.equals(getMonth()))
return 0;
}
return -1;
}

我的 Citizen 类也是:

public class Citizen implements CitizenInterface, Serializable
{
private String firstName, lastName;

public Citizen()
{
firstName = "No Name";
lastName = "No Name";
}

public Citizen(String inFirstName, String inLastName)
{
firstName = inFirstName;
lastName = inLastName;
}

public void setFirstName(String inFirst)
{
firstName = inFirst;
}

public String getFirstName()
{
return firstName;
}

public void setLastName(String inLast)
{
lastName = inLast;
}

public String getLastName()
{
return lastName;
}

public String toString()
{
String str;

str = firstName + " " + lastName;

return str;
}

最佳答案

您可以使用这样的方法并提供您希望读取的文件的路径。这将创建一个扫描程序来读取传入的文件。

它一次抓取每一行并将一个新的 CarOwner(String,String,String,String,String) 对象添加到结果数组。

附言我不知道您对 CarOwner 的实现,所以我只使用了所有字符串...我会把它留给您自己弄清楚。

public ArrayList < CarOwner > processTextToCarOwnerList(String filePath) throws IOException {
ArrayList < CarOwner > result = new ArrayList < CarOwner > ();
Scanner scan = new Scanner(new File(filePath));
while (scan.hasNextLine()) {
String line = scan.nextLine();
String[] lineArray = line.split(" ");
result.add(new CarOwner(lineArray[0], lineArray[1], lineArray[2], lineArray[3], lineArray[4]));
}
return result;
}

关于java 从 csv 文件中读取并将其信息存储到 ArrayList<class>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27324187/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com