如何将带有字符串和Ints的文件中的数据放入数组/如何比较数组?

时间:2016-11-05 23:21:36

标签: java arrays

我有点困惑,正在寻求如何实现目标的方向。我想阅读一个名为迷你高尔夫球员的文件,他们的年龄以及9洞比赛的得分。然后我想通过使用他们的年龄来找到每个洞的标准杆。 (如果它是一个年轻球员,则标准杆分数更高)

我的输入文件是practice.txt,其中包含以下内容:

Jay 57 4 3 2 3 5 3 2 3 4

Gloria 39 4 4 3 4 3 4 3 3 5

Manny 14 5 6 4 6 5 6 4 4 6

Joe 3 9 8 8 7 6 6 7 5 7

玩家的年龄由第二个数字表示(例如:Manny是14岁。)

我将标准分数信息放入2D数组中。但是,我无法弄清楚如何将2D数组与数组字符串列表进行比较?我能解决这个问题的方法是什么,或者我应该如何解决这个问题呢?这是我到目前为止!

import java.io.File;
import java.util.Scanner;
import java.util.List;
import java.io.FileNotFoundException;
import java.util.ArrayList;

public class imTryingHere {
 public static void main (String[] args) throws FileNotFoundException
  {

     int [][] ageGroups = 
    {
       {4},
       {7},
       {11},
       {15},
       {100},
    };

    int[][] holePars=
    {
      {8,8,9,7,5,7,8,5,8},
      {7,7,8,6,5,6,7,5,6},
      {6,5,6,5,4,5,5,4,5},
      {5,4,4,4,3,4,3,3,4},
      {4,3,3,3,2,3,2,3,3},
   };


    // Read in file

    File inputFile = new File ("practice.txt");
    Scanner golfScores = new Scanner (inputFile);

    // Create file into an Array of data. 

    ArrayList<String> list = new ArrayList<String>();
    while (golfScores.hasNext())
    {
      list.add(golfScores.next());
    }
    System.out.println(list);

  }
}

我是否应该尝试将字符串转换为整数或如何将文件中的数据放入int数组?或者我应该根本不使用数组文件?我为所有事情做好准备:)

(注意:我对Java很新,因为你可以这么说,请尝试使用初学者的概念。另外,我们还没有学过BufferedReader所以它不需要,也不是试试catch)

编辑:理想情况下,我正在寻找一种方法将数据从文件放入具有字符串和数字的数组中。

2 个答案:

答案 0 :(得分:0)

单个数组不能同时包含字符串和数字。

您可以拥有多个阵列,每个阵列分别用于名称和年龄,以及分数的2D数组。

不是一次从文件中读取一个单词,而是一次读取一行,然后将该行拆分为名称,年龄和分数。

答案 1 :(得分:0)

在您的代码中,您一次只读取一个单词的输入,并将所有单词放入一个数组中。我不明白你为什么要这样做。

相反,将它们放入不同的数组中,例如,将第一个值放入name数组中,将第二个值放入age数组中,依此类推。

name[ i ] = golfScores.next();
age[ i] = golfScores.nextInt();
for (j=0; j<9;j++)
    scores[i][j] = golfScores.nextInt();