如何用主类修复我的loadData方法

时间:2019-04-04 05:07:07

标签: java

我正在尝试从txt文件加载数据,它将仅读取txt文件的一行。当我在loadData方法中的for循环中指定int变量时,它将打印该特定行。我不确定为什么它不会仅添加和打印我的所有数据。

我尝试使用外部for循环查看是否可以那样打印和添加数据,但没有运气

import java.io.*;
import java.util.*;
public class BingoSortTest
{
static BingoPlayer [] test;
public static void main (String [] args) throws IOException
{
        Scanner keyboard = new Scanner(System.in);
        test = new BingoPlayer [10];
        loadData();

            System.out.print(Arrays.toString(test));


}
public static void loadData() throws IOException    
{
    Scanner S = new Scanner(new FileInputStream("players.txt"));
    double houseMoney = S.nextDouble();
    S.nextLine();
    int player = S.nextInt();
    S.nextLine();

        for(int i = 0; i < test.length; i++)
        {
            String line = S.nextLine();
            String [] combo = line.split(",");
            String first = combo [0];
            String last = combo [1];
            double playerMoney = Double.parseDouble(combo[2]);
            BingoPlayer plays = new BingoPlayer(first, last, playerMoney);
            add(plays);
        }

}
public static void add(BingoPlayer d)
{
    int count = 0;
    if (count< test.length)
    {
        test[count] = d;
        count++;
    }
    else
        System.out.println("No room");
 }
}

这是我正在使用的txt文件的内容:

  • 50.00
  • 10
  • 詹姆斯,史密斯,50.0
  • Michael,Smith,50.0
  • Robert,Smith,50.0
  • 玛丽亚,加西亚,50.0
  • David,Smith,50.0
  • 玛丽亚,罗德里格斯,50.0
  • 玛丽,史密斯,50.0
  • 玛丽亚,赫尔南德斯,50.0
  • Maria,Martinez,50.0
  • James,Clapper,50.0

1 个答案:

答案 0 :(得分:1)

每次您将BingoPlayer放在索引0上。

public static void add(BingoPlayer d)
{
    int count = 0; // <-------------------- Here
    if (count< test.length)
    {
        test[count] = d;
        count++;
    }
    else
        System.out.println("No room");
 }

您必须在定义BingoPlayer数组的地方定义静态计数器变量。

定义计数变量静态

static BingoPlayer [] test;
static int count = 0;

并像这样修改添加函数定义。

public static void add(BingoPlayer d)
{
    if (count< test.length)   {
        test[count] = d;
        count++;
    }
    else
        System.out.println("No room");
 }