java - 为什么我的单词计数器有时会减一?

标签 java string file bufferedreader filereader

大多数时候它都能正常工作。很少会倒数一。有什么猜测吗?

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

最佳答案

我猜第二行被分成两个字符串,“”和“k”。请参阅下面的代码:

import java.util.Arrays;

public static void main(String[] args) {
    String str = "           k";
    String[] array = str.split("\\\s+");
    System.out.println("length of array is " + array.length); // length is 2
    System.out.println(Arrays.toString(array)); //array is [, k]
}

关于java - 为什么我的单词计数器有时会减一?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37267543/

相关文章:

java - 如何从 Trie 中检索给定长度的随机单词

java - 字符串和indexOf的问题

javascript - 如何检查 'string1'是否在 'string1, string2, string3, .. stringn'中

c - 为什么 Strcpy 函数不能与指向数组的指针一起使用?

c++ - 是否可以将二进制文件存储在 exe 中

c - 如何从 C 中的 FILE* 结构中获取文件名

java - Spring Security 4 - REST 身份验证失败和 Controller 异常处理程序

javascript - 警报消息未正确显示

java - 找不到 spring boot Ojdbc6 类

.net - Visual Studio 上的 ezdb 文件?