2

これが私がやろうとしていることです。たとえば、この形式の入力ファイル (input.txt) があるとします。行または列の数は異なる場合があり、列はスペースで区切られています。

the       DT   B-NP
current   JJ   I-NP
account   NN   I-NP
deficit   NN   I-NP
will      MD   B-VP << CURRENT TOKEN
narrow    VB   I-VP
to        TO   B-PP
only      RB   B-NP

各単語を 2 次元配列 x[i,j] の要素に入れたいので、インデックス ファイルを使用できます。

x[0,0]
x[0,1]
x[-1,0]
x[-2,1]

この結果を得るには:

will
MD
deficit
NN

括弧内の数字は配列の i,j インデックスであり、開始位置 [0,0] は "<< CURRENT TOKEN" でマークされた行の最初の単語です (この場合は単語 "will" です) .

したがって、次の方法でファイルを配列に読み取ることができます。

import java.awt.List;
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;



public class ReadfileIntoArray {

    String[] data = new String[100];

    public void read() throws IOException {


        FileReader fr = new FileReader("/Users/home/Documents/input.txt");
        BufferedReader br = new BufferedReader(fr);
        String line;

        System.out.println("Print from here:");
        int i = 0;
        while ((line = br.readLine()) != null) {
            data[i] = line;
            System.out.println(data[i]);
            i++;
        }
        br.close();
        // This is for resize the data array (and data.length reflect new size)
        String[] dataNew = new String[i];
        System.arraycopy(data, 0, dataNew, 0, i);
        data = dataNew;
        System.out.println("Data length: " + data.length);
    }

    public static void main(String[] args) throws IOException {
        ReadfileIntoArray rfta = new ReadfileIntoArray();
        rfta.read();
    }
}

しかし、私が検索したように、使用する必要があるかもしれません

List<String> arrList =FileUtils.readLines(new File("myfile.txt"));  

未定義の長さ (??)についてはよくわかりませが、それを使用するには特別なパッケージをインポートする必要があると思います。エラーが発生しました[-2,1]...

どうすれば上記のタスクを実行できますか。私にとっては非常に複雑に見えます。どうもありがとう !

4

1 に答える 1