java - 我的 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 ...!?
(我试图做到绝对基础,所以不使用分词器/拆分或任何其他内置方法)
解决方案
换行符不是空格字符,所以当你有这个时
"Welcome to Java
this is line 2"
您的程序将其读取为
"Welcome to Java\nthis is line 2"
因此,您可以将换行符转义序列添加\n
到您的程序中来处理它
推荐阅读
- mongodb - “没有反应堆在运行,必须从 Tokio 1.x 运行时的上下文中调用”当将 mongodb 2 与 actix-web 3 一起使用时
- excel - Excel VBA - Financial Model Color Formatting
- kubernetes - 如何识别 statefulset 中不健康的 pod
- matrix - 在 Julia 中将元组向量转换为矩阵
- google-cloud-platform - 谷歌云计费帐户的问题
- javascript - 与 www 崩溃的 http 请求
- python - 如果 Internet 出现故障,Colab 笔记本执行将失败。如何防止这种情况?
- javascript - 如何使用上下文桥将类传递给渲染器进程
- mysql - 选择计数与另一个选择和内部连接
- javascript - 在 React 中使用 API