0

.txt ファイルを読み取り、各単語を配列に格納するプログラムを作成しています。私はこれまでのところこれを持っています。それは大丈夫に保存されます...

        BufferedReader fr = new BufferedReader(new FileReader(file));
        ArrayList<String> words = new ArrayList<String>(50);
        String[] line;
        String str;
        while((str=fr.readLine()) != null)
        {
            line = str.split("(?s)\\s+");
            for(String word : line)
                words.add(word);
        }
        if(words.size() > 49){
            System.out.println("To many words in file.");
            System.exit(1);
        }
       for(String word : words){

            if(word.length() > 12){

            }
        }
        // Printing the content of words
        for(String word : words)
            System.out.println("sting entry:" + word);
    }

しかし貯まりすぎ。私が使用したとき:

 for(String word : words)
     System.out.println("sting entry:" + word);

すべてが保存されているものを確認して確認すると、結果として次のようになりました。

sting entry:it's
sting entry:yes-man
sting entry:murdered
sting entry:ok
sting entry:
sting entry:Hello
sting entry:Friend

これは問題ありませんが、戻り値を単語として読み取り、それを配列に格納します。これを防ぐにはどうすればよいですか?

また、私がそれに取り組んでいる間...私のコードにランダムなコードがあることに気付いた場合:

   for(String word : words){

        if(word.length() > 12){

        }
    }

ArrayList12文字を超える文字列値も格納しないようにしたい。これもどのように実装しますか?高度に感謝します。

4

1 に答える 1

0

コードのこの時点で、次のようにします。

for (String word : line)
{
  word = word.trim();
  if (word.length > 0 && word.length <= 12) { words.add(word); }
}

そこに他のフィルターを配置することもできます。余裕がある場合は、単語をリストに追加することがわかっている時点で、単語が多すぎるかどうかを確認できます。

于 2013-03-12T19:18:44.090 に答える