【问题标题】:Arrays are being filled with null instead of names and 0 instead of numbers数组被填充为 null 而不是名称和 0 而不是数字
【发布时间】:2014-06-11 17:49:54
【问题描述】:

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

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));
    }
}

【问题讨论】:

  • hasNextInt 是做什么的?

标签: java arrays file null


【解决方案1】:

您的循环定义不明确。

您正在检查是否存在下一个 int 而不是下一个令牌,并使用您不打算使用的行。

试试这个循环:

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

【讨论】:

    【解决方案2】:

    如下更改循环。更改 while() 子句并注释掉 2 行。

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

    【讨论】:

      【解决方案3】:

      这个

      int accounts = inFile.nextInt();
      

      消耗这个令牌

      10
      

      然后你做

      while (inFile.hasNextInt()) {
      

      但文件中的下一个标记是

      \nHelene 1000
      

      所以方法调用将返回false,因为没有下一个int,循环将退出。

      也许你应该检查完整的行。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-08-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多