我有一个程序,它读取一个包含足球队的文本文件,其中包含他们得分的目标数量我希望能够扫描特定团队的文本文件,然后计算目标得分等等等等等等等等。 。
public void totalGames()
{
File inputfile = new File ("validtest.txt.txt");
try{
Scanner filescan = new Scanner(inputfile);
//Map<String[], int[]> teams = new Map<>();
HashMap<String,String> teamMap = new HashMap<String, String>();
while(filescan.hasNext()){
// StrArray = aLine.split(separator);
String[] teamKey = filescan.nextLine().split(" : ");
teamMap.put(teamKey[0], teamKey[1]);
}
filescan.close();
System.out.println(teamMap);
}catch (FileNotFoundException e){
}
I have managed to add only the teams to the map but it is making the teams equals to each other where as the team needs to be associated with the goals scored in that game.
Fulham : Liverpool : 1 : 2
Wigan Athletic : Leeds United : 2 : 2
Arsenal : Liverpool : 2 : 2
答案 0 :(得分:0)
DataModel是关键字!
我建议创建一个DataModel
。
如果用户输入了团队名称,请尝试通过contains()
和indexOf()
方法查找包含完全相同团队的模型。
答案 1 :(得分:0)
您可以执行以下操作:
答案 2 :(得分:0)
您需要的是将每个团队与他们得分的目标数量相关联。 Map数据结构就是您所需要的。
在您的情况下,将所有团队存储为地图中的关键字,并累积每个团队的得分目标。如果您有任何问题,请尝试编辑您的问题。
修改强>
// HashMap<Team, GoalsScored>
HashMap<String,Integer> teamMap = new HashMap<String, Integer>();
String[] teamKey = filescan.nextLine().split(" : ");
String team1 = teamKey[0];
String team2 = teamKey[1];
Integer team1goals = Integer.valueOf(teamKey[2]);
Integer team2goals = Integer.valueOf(teamKey[3]);
// if team1 is not in the map initialise with 0 goals
if (!teamMap.containsKey(team1)) {
teamMap.put(team1, 0);
// if team2 is not in the map initialise with 0 goals
if (!teamMap.containsKey(team2)) {
teamMap.put(team2, 0);
// accumulate team1 goals
teamMap.put(team1, teamMap.get(team1) + team1goals);
// accumulate team2 goals
teamMap.put(team2, teamMap.get(team2) + team2goals);
答案 3 :(得分:0)
您只需创建一个新的Game
或Match
类,然后循环浏览您的文件并将匹配详细信息存储在list<Match>
中:
public Class Match{
String team;
int score:
String opponent;
int opponentScore;
}
然后为每个行存储Match
实例中的匹配详细信息,然后将其添加到匹配列表中。
您的显示将如下:
System.out.println(match.team+":"+match.opponent+" "+match.score+":"+match.opponentScore);
其中match
代表匹配列表的每个元素。
我认为应该这样做。