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...

このファイルには、プログラムが異なる学年の他の学生の他のプログラムと比べてどれだけうまくいったかに関する情報が含まれています。各学年は「-」で区切ります。各年は数字で始まり、統計がどの年に関係しているかを宣言します。この後、ファイルは、プログラムがさまざまな研究の学生に対してどれだけうまくいったかを示しています. 各スタディは「=」で区切られています。次に、個々の試合が宣言されます。最初に生徒の名前が表示され、その後にタブ ('\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

テキストを1行ずつ読んでから行を解析する方が簡単な場合:

   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

このような強引な方法で問題を解決しようとしないでください。オブジェクト指向言語で作業しています。その特定の長所を利用して、特定の年のレポート データを保持するクラスを設計し、ファイルをそのクラスのインスタンスのコレクションに解析し、そのクラスにメソッドを実装して必要な情報を返します。

于 2012-11-22T21:47:44.857 に答える