数组中填充的是null而不是名称,填充的是0而不是数字



我需要用文本文件中的名称和相应的帐户余额填充两个单独的数组。文件看起来像这个

10
Helene 1000
Jordan 755
Eve 2500
Ken 80
Andrew 999
David 1743
Amy 12
Sean 98
Patrick 7
Joy 14

其中10是账户的数量

import java.util.*;
import java.io.*;
import java.util.Arrays;
public class bankaccountmain {
    public static void main(String[] args) throws FileNotFoundException {
        Scanner inFile = null;
        try {
            inFile = new Scanner(new File("account.txt"));
            ;
        } catch (FileNotFoundException e) {
            System.out.println("File not found!");
            System.exit(0);
        }
        int count = 0;
        int accounts = inFile.nextInt();
        String[] names = new String[accounts];
        int[] balance = new int[accounts];
        while (inFile.hasNextInt()) {
            inFile.next();
            names[count] = inFile.next();
            inFile.nextInt();
            balance[count] = inFile.nextInt();
            count++;
        }
        System.out.println(Arrays.toString(names));
        System.out.println(Arrays.toString(balance));
    }
}

您的循环定义不好。

您正在检查是否有下一个int而不是下一个token,并消耗您不打算使用的行。

尝试将其作为一个循环:

    while (inFile.hasNext()) {
        names[count] = inFile.next();
        balance[count] = inFile.nextInt();
        count++;
    }

按如下方式更改循环。更改while()子句并注释掉这两行。

    while (inFile.hasNext()) {
        //inFile.next();
        names[count] = inFile.next();
        //inFile.nextInt();
        balance[count] = inFile.nextInt();
        count++;
    }

int accounts = inFile.nextInt();

消耗此令牌

10

然后你做

while (inFile.hasNextInt()) {

但是文件中的下一个令牌是

nHelene 1000

因此方法调用将返回CCD_ 1,因为没有下一个CCD_。

也许你应该检查一下完整的线路。

相关内容

  • 没有找到相关文章

最新更新