1

私はJavaを初めて使用します。テキストファイルの行から各整数を読み取るにはどうすればよいですか。リーダークラスには、read関数とreadline関数があることを知っています。しかし、私の場合、ファイル内の整数を読み取るだけでなく、行がいつ変更されるかを知りたいです。すべての行の最初の要素は配列インデックスを示し、対応するすべての要素はそのインデックスに関連付けられたリンクリスト値であるためです。

たとえば、以下の4行を参照してください。この場合、各整数を読み取るだけでなく、すべての行の最初の整数が配列インデックスになるため、各配列要素がA [1]-> 4、Aのリストに対応する4要素の配列になります。 [2]->1,3,4など。

1 4

2 1 3 4

3 2 5

4 2

整数を適切に取得した後、次の方法で整数を入力することを計画しています。

ArrayList<Integer>[] aList =  (ArrayList<Integer>[]) new ArrayList[numLines];

編集済み:コメントの1つで、これまで考えてきたことと、どこで行き詰まっているのかを尋ねられました。以下は、私が考えていることです(元のコードと疑似コードの混合に関して)。

 while (lr.readLine() != null) {

        while ( // loop through each character)
                if ( first charcter)
                    aList[index] = first character;
                else 
                    aList[index]->add(second char.... last char of the line);
    }

ありがとう

4

1 に答える 1

0

スキャナーのヒントをありがとう、Andrew Thompson。

これが私がそれを達成した方法です

    Scanner sc =new Scanner(new File("FileName.txt"));

    ArrayList<Integer>[] aList = (ArrayList<Integer>[]) new ArrayList[200];
    String line;
    sc.useDelimiter("\\n");
    int vertex = 0;
    while (sc.hasNextLine()) {
        int edge = 0;
        line = sc.nextLine();
        Scanner lineSc = new Scanner(line);
        lineSc.useDelimiter("\\s");
        vertex = lineSc.nextInt() - 1;
        aList[vertex] = new ArrayList<Integer>();
        int tmp = 0;
        System.out.println(vertex);

        while (lineSc.hasNextInt()) {
            edge = lineSc.nextInt();
            aList[vertex].add(edge);
            System.out.print(aList[vertex].get(tmp) +  "  ");
            ++tmp;
        }
        System.out.println ();
    }
于 2012-07-07T10:04:56.927 に答える