我正在编写一个读取.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个字符的字符串值。我该如何实现呢?非常感谢先进。
答案 0 :(得分:0)
在代码的这一点上,执行以下操作:
for (String word : line)
{
word = word.trim();
if (word.length > 0 && word.length <= 12) { words.add(word); }
}
您也可以在其中放置其他过滤器,并检查该点是否有太多单词 如果有空间,你知道你会把这个词放在列表中。