如何在Java中将句子的ArrayList拆分为单词的ArrayList而又不读取文本文件不止一次?

时间:2018-09-02 06:31:53

标签: java arraylist

我只需要读一次文本文件 ,并将句子存储到ArrayList中。然后,我需要将句子的ArrayList拆分为每个单词的另一个ArrayList。不确定如何执行此操作?

在我的代码中,我将所有单词都拆分成一个ArrayList,但是我认为它又是从文件中读取的,这是我不能做的。

到目前为止,我的代码:

public class Main {
    public static void main(String[] args){
        try{
            FileReader fr = new FileReader("input.txt");
            BufferedReader br = new BufferedReader(fr);
            ArrayList<String> sentences = new ArrayList<String>();
            ArrayList<String> words = new ArrayList<String>();

            String line;
            while((line=br.readLine()) != null){
                String[] lines = line.toLowerCase().split("\\n|[.?!]\\s*");
                for (String split_sentences : lines){
                    sentences.add(split_sentences);
                }
               /*Not sure if the code below reads the file again. If it
                 does, then it is useless.*/
                String[] each_word = line.toLowerCase().split("\\n|[.?!]\\s*|\\s");
                for(String split_words : each_word){
                    words.add(split_words);
                }
            }
            fr.close();
            br.close();

            String[] sentenceArray = sentences.toArray(new String[sentences.size()]);
            String[] wordArray = words.toArray(new String[words.size()]);  
         }
         catch(IOException e) {
         e.printStackTrace();
        }
    }
}

1 个答案:

答案 0 :(得分:0)

  

/*Not sure if the code below reads the file again. If it does, then it is useless.*/

不是。您只是在重新准备已经阅读的行。

您已经解决了问题。