目前我有一个文件阅读器,可以逐行读取文件中的数据,并检查以确保以所需的格式输入它们,如果是,那么它会将它们添加到数组并添加输出到控制台。我想要做的是让用户可以进入一个特定的团队,它将通过该文件,只记录相关数据给那个团队,但我不知道如何做到这一点。以下是我将记录和打印文本文件中的数据的代码:
String hteam;
String ateam;
int hscore;
int ascore;
int totgoals = 0;
Scanner s = new Scanner(new BufferedReader(
new FileReader(fileName))).useDelimiter("\\s*:\\s*|\\s*\\n\\s*");
while (s.hasNext()) {
String line = s.nextLine();
String[] words = line.split("\\s*:\\s*");
//splits the file at colons
if(verifyFormat(words)) {
hteam = words[0]; // read the home team
ateam = words[1]; // read the away team
hscore = Integer.parseInt(words[2]); //read the home team score
totgoals = totgoals + hscore;
ascore = Integer.parseInt(words[3]); //read the away team score
totgoals = totgoals + ascore;
validresults = validresults + 1;
我的问题是如何制作它以便用户可以输入团队名称,然后将其与hteam或ateam的名称进行比较,并继续读取循环的每一行。
答案 0 :(得分:1)
如果您有兴趣计算文件中某个团队的匹配数量,我会使用Map
。首先,填充地图:
Map<String, Integer> teams = new HashMap<>();
String team = "team A";
if(teams.containsKey(team)) {
teams.put(team, teams.get(team) + 1);
} else {
teams.put(team, 1);
}
然后,检索匹配数量:
String userTeam = "...";
if(teams.containsKey(userTeam)) {
System.out.println(userTeam + ": " + teams.get(userTeam));
} else {
System.out.println(userTeam + " unknown");
}