存储扫描仪输入和使用

时间:2015-01-07 16:20:26

标签: java java.util.scanner

我有一个java程序,它逐行读取文本文件,该行的每个部分都使用分隔符:

文本文件中的数据可能类似于:

TeamOne : TeamTwo : TeamOneScore : TeamTwoScore.

我想创建一个摘要,显示每支球队有多少场比赛,以及每场比赛得分多少。

来自文本文件的数据可能包含同一团队的多个实例,并且如果向文本文件添加更多数据,则最好能够处理创建摘要。

存储每行文本的最佳方法是什么,以便对它们进行比较?

如果团队赢得丢失游戏,以及他们获得的目标总数,我希望能够解决这个问题。

目前,每行都从文本文件中读取,并存储为字符串,然后分成4个部分。这一切都发生在while循环中,然后在读取下一行时数据丢失:

fileinput = fileread.nextLine(); 
String line = fileinput;
String[] split = line.split(":");
String hometeam = split[0].trim();
String awayteam = split[1].trim();
String home_score = split[2].trim();
String away_score = split[3].trim();

1 个答案:

答案 0 :(得分:0)

所以只是为了你的最后一行:当读取下一行时,数据会丢失< - 这很明显,因为你定义了for循环的局部变量。因此,对于每次迭代,变量将再次初始化。所以这是我的解决方案:

ArrayList<String[]> matches = new ArrayList<String[]>();
// open file somewhere
while(fileread.hasNextLine())
{
    String line = fileread.nextLine();
    String[] split = line.split(":");
    String[] toAdd = new String[4]
    toAdd[0] = split[0].trim();
    toAdd[1] = split[1].trim();
    toAdd[2] = split[2].trim();
    toAdd[3] = split[3].trim();
    matches.add(toAdd);
}

现在你有了一个ArrayList,其中每个条目都是一个大小为4的字符串数组。 但请注意,如果要计算总分数,则必须将字符串转换为int, 因为匹配的每个属性都是string类型(因此是一个字符串数组)

相关问题