我有点困惑,正在寻求如何实现目标的方向。我想阅读一个名为迷你高尔夫球员的文件,他们的年龄以及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)
编辑:理想情况下,我正在寻找一种方法将数据从文件放入具有字符串和数字的数组中。
答案 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();