1

我有一个明天必须完成的大学 JAVA 作业,我不知道如何解决这个问题。这是作业:

我有一个 .txt 包含:

2000
I
Achraf Belmokadem                    2355 22
Richard van Heuven van Staereling    1355 95
Shan Shan                            2315 100
=W
Wartie Zeggen                        4311 19
Melissa de Wit                       2041 99
Enes Goktas                          1195 74
-
2001
I
enz...

该文件包含有关一个程序与不同学年的其他学生的其他程序的对比情况的信息。每个学年以“-”分隔。每一年都以一个数字开始,说明统计数据关注的年份。在此之后,该文件显示了该程序对不同专业的学生的表现如何。每项研究都由“=”分隔。接下来,声明每个单独的匹配项。首先,显示学生的姓名,后跟 TAB ('\t')。下一个数字显示程序必须考虑该玩家多长时间。最后一个数字是程序已征服的棋子百分比。(学生的节目玩游戏)

我的任务是打印程序以 0-9%、10-19% ... 90-100% 结束的频率。

这就是我来的多远..

void printNames(Scanner nameScanner) {
    nameScanner.useDelimiter("\t");

    String name = nameScanner.next();
    int thinkingTime = nameScanner.nextInt();
    int takenStones = nameScanner.nextInt();

我不知道如何使用扫描仪和定界符来总结这些数字并将它们分类为 1-9、10-19 ......我该如何解决这个问题?

4

2 回答 2

0

如果逐行阅读您的文本然后解析这些行会更简单:

   Scanner sc = new Scanner(new File("test.txt"));
   while(sc.hasNextLine()) {
        String line = sc.nextLine();
        String[] ss = line.split("\t+");
        if (ss.length > 1) {
            String[] nn = ss[1].trim().split(" ");
            int n1 = Integer.valueOf(nn[0]);
            int n2 = Integer.valueOf(nn[1]);
            System.out.println(n1 + " " + n2);
        }
    }
于 2012-11-23T05:58:52.870 回答
0

不要试图用这种蛮力的方法解决问题。您正在使用 OO 语言工作;利用它的特殊优势并设计一个类来保存特定年份的报告数据,将文件解析为该类的实例集合,并在该类上实现方法以返回您需要的信息。

于 2012-11-22T21:47:44.857 回答