将用户输入的值与存储在数组中的值进行比较?

时间:2015-06-09 19:49:31

标签: java arrays

目前我有一个文件阅读器,可以逐行读取文件中的数据,并检查以确保以所需的格式输入它们,如果是,那么它会将它们添加到数组并添加输出到控制台。我想要做的是让用户可以进入一个特定的团队,它将通过该文件,只记录相关数据给那个团队,但我不知道如何做到这一点。以下是我将记录和打印文本文件中的数据的代码:

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的名称进行比较,并继续读取循环的每一行。

1 个答案:

答案 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");
}