0

現時点では、文字列のテキスト ファイルを読み込んで、行ごとに配列に入れようとしています。テキスト ファイルは 10 行で構成され、各行には一連の単語 (Web サイトから抽出された文) が含まれています。私の目的は、これらの文字列を配列 (各行の配列) に格納することです。

これは、現在使用しているパッケージ配列のコードです。

public class sep_arr
{
    public static void main (String[] args) throws FileNotFoundException
    {

        Scanner DataFile = new Scanner(new File("EntityTagged.txt"));

        while(DataFile.hasNextLine()){
            String line = DataFile.nextLine();

            ArrayList<String> salesData = new ArrayList<String>();

            Scanner scanner = new Scanner(line);
            scanner.useDelimiter(",");
            while(scanner.hasNextDouble()){
                salesData.add(scanner.toString());
            }
            scanner.close();

            System.out.println(salesData);
        }

        DataFile.close();

    }
}

このコードは、10 個の異なる文を含む「EntityTagged.txt」ファイルを読み取り、それらを配列に格納しようとします。現時点では、実行すると空の配列が返されます

[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]

私の目標は、これらの配列に文を格納してから、「endsWith() メソッド」を使用してテキストから特定の単語を抽出することです。

どんな助けでも大歓迎です

ありがとうございました

4

4 に答える 4

0

1.7 で java.nio が追加されたことで、スキャナを使用するよりもファイルを読み取るためのより良い方法があります。

各行の解析に関する限り、コンマで区切られた double があることが確実であり、それが作成しようとしているものである場合は、それを実行してください。

このイディオムはあなたのために働くはずです:

   Path file = Paths.get("EntityTagged.txt");
    List<String> fileContents = new LinkedList<>();
    try (BufferedReader reader = Files.newBufferedReader(file, Charset.defaultCharset()))
    {
        String line;
        while ((line = reader.readLine()) != null)
        {
            fileContents.add(line);
        }
    }
    return fileContents;

データのサンプルを投稿したい場合は、各行を正しくトークン化しているかどうかを確認するのに役立ちます.

于 2014-03-22T00:37:14.970 に答える
0

あなたの問題はここにあると思います

while(scanner.hasNextDouble()){
    salesData.add(scanner.nextDouble()+""); // you wrote scanner.toString()
}
于 2014-03-22T00:40:05.483 に答える
0

このようにしてください

Scanner DataFile = new Scanner(new File("EntityTagged.txt"));

ArrayList<String> salesData = new ArrayList<String>();
while (DataFile.hasNextLine()) {
    String line = DataFile.nextLine();

    salesData.add(line);
}

for (String str : salesData) {
    System.out.println(str);
}

DataFile.close();
于 2014-03-22T00:45:20.577 に答える
0

java8 を使用している場合は、次のように実行できます。

Files.lines(Paths.get("EntityTagged.txt")).toArray(String[]::new);

java.nio.file.Files は、ファイルを操作するためのユーティリティ クラスです。java8 には新しいメソッドがありlines、このメソッドは文字列のストリームを返します。このストリームは、メソッド参照で toArray メソッドを使用して文字列の配列に変換されます。 String[] の「コンストラクタ」に

于 2014-03-22T00:53:37.070 に答える