过滤我的数组列表中的内容

时间:2013-03-12 19:12:15

标签: java arraylist

我正在编写一个读取.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个字符的字符串值。我该如何实现呢?非常感谢先进。

1 个答案:

答案 0 :(得分:0)

在代码的这一点上,执行以下操作:

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

您也可以在其中放置其他过滤器,并检查该点是否有太多单词 如果有空间,你知道你会把这个词放在列表中。