Java扫描文件和打印字(有多个实例)一次

时间:2015-01-08 16:13:44

标签: java file printing

我有一个程序可以扫描包含足球比分的文件,例如:

Leeds : 1 : Manchester City : 2
Manchester City : 3 : Chelsea : 1

我目前正在按行扫描它,然后通过以下方式将其拆分:但是我想在不重复的情况下创建团队打印     即。

Manchester City total goals = 5
Chelsea total goals = 1
Leeds City total goals = 1

有没有办法,我可以做到这一点,而无需硬编码团队名称。所以它只是扫描一个文件并选择团队但只有一次。分数在这里并不重要我只是以它们为例,团队名称是我想要清晰打印的。

我试过了:

    While (file.hasNext()){
    String line = file.nextLine();
    String[] word = line.split(":");
    System.out.println(teamname+" total goals ="+goals );
    }

1 个答案:

答案 0 :(得分:1)

不是立即打印目标,而是将它们存储在Map中:

private Map<String, Integer> goalCounts = new HashMap<>();

private void addGoals(String teamName, int numGoals) {
    if (goalCounts.containsKey(teamName)) {
        goalCounts.put(teamName, goalCounts.get(teamName) + numGoals);
    }
    else {
        goalCounts.put(teamName, numGoals);
    }
}

打印出总数:

for (Map.Entry<String, Integer> teamGoalsEntry : goalCounts.entrySet()) {
    System.out.println(teamGoalsEntry.getKey() + " total goals=" + teamGoalsEntry.getValue());
}

您也可以使用AtomicInteger更新目标,而不是覆盖Map值。