首页 > 解决方案 > 我的 java“文件字数统计”程序不准确

问题描述

我正在使用一个相当基本的逻辑来计算我的 java 程序中的“.txt”文件中的单词,并且我确实得到了文件中单行的准确计数,但由于某种原因,每次换行时计数不足 1在文件中遇到...?任何关于我的逻辑不足的帮助都会有很大的帮助!

我的代码

        int count = 1; // any alternative for this ... ?

        FileInputStream fis = new FileInputStream ("practice.txt");

        int c,f=0;          

        while((c = fis.read()) != -1)
        {
            if ( c != ' ')
            {
                f = 1;
            }
            if(f == 1 && c == ' ')
            {
                count++;
                f=0;
            }
        }
        System.out.println(count);

只是为了给出一个观点:现在,如果我在一个文本文件上编译并运行它,其中只有一行:“Welcome to java”

结果是:

  3 // accurate

但如果文件换行,即

“欢迎来到 Java

这是第 2 行“ .......我得到:

 6 

现在随着线的增加,每条线的结果减少1 ...!?

(我试图做到绝对基础,所以不使用分词器/拆分或任何其他内置方法)

标签: java

解决方案


换行符不是空格字符,所以当你有这个时

"Welcome to Java

this is line 2"

您的程序将其读取为

"Welcome to Java\nthis is line 2"

因此,您可以将换行符转义序列添加\n到您的程序中来处理它


推荐阅读