gpt4 book ai didi

java - 初学者作业需要帮助!扫描文件 -> 数据验证 -> Printwriter

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:44:54 24 4
gpt4 key购买 nike

我真的卡在Java的作业上了。只是一个初学者,我需要编写一个捐赠管理系统,需要读取 2 个文件(捐赠者记录和说明),我需要读取和验证捐赠者记录,然后打印写入验证记录并以某种 toString 格式打印。

需要读取这样的记录:(字段可以任意顺序)

phone 02111111
name Posephine Bloggs
birthday 01-06-1980
address 1 Grace Street, Lane Cove, NSW
postcode 2066
recipient dog care, the disabled
donation 100, 300

address 102 Smith St, Summer hill, NSW
postcode 2130
name Posephine Esmerelda Bloggs
birthday 13-05-1960
phone 11222009
recipient animal protection, lifecare
donation 50, 200

我已经创建了 3 个 Scanner,1.扫描记录文件2.扫描每一行3.扫描关键字和值

但后来我得到了结果文件,其中每个字段都创建了一个捐赠者对象,而不是将所有字段都放在一个对象中。

输出如下:

name: null
birthday: null
address: null
postcode: 0
phone: null

name: Posephine Bloggs
birthday: null
address: null
postcode: 0
phone: null

name: null
birthday: 01-06-1980
address: null
postcode: 0
phone: null

name: null
birthday: null
address: 1 Grace Street, Lane Cove, NSW
postcode: 0
phone: null

name: null
birthday: null
address: null
postcode: 0
phone: null

最佳答案

你的错误在这里:

while(scanRecord.hasNextLine()) {
donator a = new donator();

String line = scanRecord.nextLine();

这意味着您将为阅读的每一行创建一个新的捐助者,而每当您阅读空白行时,您应该创建一个新的捐助者。

解决此问题的一种方法是将 a 的声明移出 while 循环,并且仅在读取的行为空白时才初始化 a。您还应该将捐赠者添加到 else 分支的列表中。

donator a = new donator();
while(scanRecord.hasNextLine()) {
String line = scanRecord.nextLine();
if (!line.isBlank()) {
...
} else {
donatorList.addDonator(a);
a = new donator();
}

关于java - 初学者作业需要帮助!扫描文件 -> 数据验证 -> Printwriter,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56017820/

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