【发布时间】:2016-05-17 05:04:28
【问题描述】:
大部分时间它都能正常工作。很少会倒数。有什么猜测吗?
public static int countWords(File file) throws FileNotFoundException, IOException{
BufferedReader br = new BufferedReader(new FileReader(file));
String line;
List<String> strList = new ArrayList<>();
while ((line=br.readLine())!=null){
String[] strArray= line.split("\\s+");
for (int i=0; i<strArray.length;i++){
strList.add(strArray[i]);
}
}
return strList.size();
}
特别是在下面的示例中,它给出的是 3 而不是 2:
\n
k
【问题讨论】:
-
您认为
\n是一个词吗?我认为k是您示例中唯一的 word。 -
我猜它将新行计为 1,tab 计为 2nd,然后 k 计为 3rd ;)
-
我该如何解决? @BilboBaggins
-
尝试创建一个集合/映射或其他一些数据结构来保存您不想计算的所有关键字/单词,或者另一种方法是从您的首先是字符串,然后从中查找单词。
-
特别是在下面的示例中,它给出了 3 而不是 2 好的。这三个元素的价值是什么?是
[, \n, k]吗?\n之前有空行吗?是\n[tab][newLine][tab]k吗?
标签: java string file bufferedreader filereader