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){

        }
    }

我想让它ArrayList也不会存储超过 12 个字符的字符串值。我该如何实现呢?非常感谢。

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 回答