我是Java新手。

我编写了一个代码来计算文件中特定单词的出现次数。要向用户询问要计算的单词。我写了两个代码。第一个代码运行正常,计数正确。而在第二个代码中,计数较少。我无法弄清楚原因。有人可以帮我找到第二个代码中的缺陷吗?

从文件中读取的段落和两个代码如下所示。

段落:

在文字处理和桌面发布中,硬回车或分段符表示新段落,以区别于段落内部行末尾的软回车。这种区别允许自动换行在编辑时自动重新流动文本,而不会丢失分段符。软件可以在段落中应用垂直空格或缩进,具体取决于所选的样式。

实际存储此类文档的方式取决于文件格式。例如,HTML使用

标记作为段落容器。在纯文本文件中,有两种常见格式。预格式化文本将在每个物理行的末尾添加换行符,并在段落末尾添加两个换行符,从而创建一个空行。另一种方法是只在每个段落的末尾添加换行符,并将自动换行显示在显示或处理文本的应用程序中(如果有必要的话)。

代码1:提供正确的输出

package prac3;

import java.io.BufferedReader;

import java.io.FileNotFoundException;

import java.io.FileReader;

import java.io.IOException;

import java.util.Scanner;

public class FromFile {

private String word;

FromFile() {

}

int Count(String word1) throws IOException {

this.word = word1;

String abc;

int count = 0, total = 0;

try {

BufferedReader in = new BufferedReader(

new FileReader(

"C:\\Documents and Settings\\Administrator.EGOVPC79\\Desktop\\file.txt"));

while ((abc = in.readLine()) != null) {

String abc1 = abc;

Scanner s = new Scanner(abc1);

while (s.hasNext()) {

total++;

if (s.next().equals(word)) {

count++;

}

}

}

in.close();

} catch (FileNotFoundException e) {

e.printStackTrace();

}

System.out.println("total" + total);

return count;

}

public static void main(String[] args) throws IOException {

FromFile obj = new FromFile();

String word;

Scanner abc = new Scanner(System.in);

System.out.println("Enter the word you want to count");

word = abc.nextLine();

int count = obj.Count(word);

System.out.println("The occurence is :" + count);

}

}

代码2:这会产生错误的输出。

package prac3_2;

import java.io.BufferedReader;

import java.io.FileReader;

import java.io.IOException;

import java.util.Scanner;

public class File {

private String word;

private String abc1;

File() throws IOException {

String abc;

BufferedReader in = new BufferedReader(

new FileReader(

"C:\\Documents and Settings\\Administrator.EGOVPC79\\Desktop\\file.txt"));

while ((abc = in.readLine()) != null) {

abc1 = abc;

System.out.println(abc1);

}

in.close();

}

int Count(String word1) {

this.word = word1;

int count = 0, total = 0;

Scanner s = new Scanner(abc1);

while (s.hasNext()) {

total++;

if (s.next().equals(word)) {

count++;

}

}

System.out.println("total" + total);

return count;

}

public static void main(String[] args) throws IOException {

File obj = new File();

String word;

Scanner abc = new Scanner(System.in);

System.out.println("Enter the word you want to count");

word = abc.nextLine();

int count = obj.Count(word);

System.out.println("The occurence is :" + count);

}

}

java 错误输出_Java中的字数统计错误输出相关推荐

  1. word文档纯字数统计_如何在您的Word文档中插入字数统计

    word文档纯字数统计 Word tracks certain summary information about documents, such as the number of words in ...

  2. java 异常 理解_java中的异常理解

    java异常是java提供的用于处理程序中错误的一种机制. 所谓错误是指在程序运行的过程中发生的一些异常事件(如:除0溢出,数组下标越界,所要读取的文件不存在). 设计良好地程序应该在程序异常发生时提 ...

  3. java log4j记录_JAVA中使用LOG4J记录日志

    在项目开发中,记录错误日志是一个很有必要功能.一是方便调试:二是便于发现系统运行过程中的错误:三是存储业务数据,便于后期分析: 在java中,记录日志,有很多种方式. 比如,自己实现. 自己写类,将日 ...

  4. java double 计算_Java中的Double类型计算

    一.问题的提出: 如果我们编译运行下面这个程序会看到什么? public class Test{ public static void main(String args[]){ System.out. ...

  5. java mod %区别_Java中 % 与Math.floorMod() 区别详解

    %为取余(rem),Math.floorMod()为取模(mod) 取余取模有什么区别呢? 对于整型数a,b来说,取模运算或者取余运算的方法都是: 1.求 整数商: c = a/b; 2.计算模或者余 ...

  6. java show过时_Java中show() 方法被那个方法代替了? java编程 显示类中信

    你说的show是swing里的吧,在老版本中Component这个超类确实有show这个方法,而且这个方法也相当有用,使一个窗口可见,并放到最前面.在jdk5.0中阻止了这个方法,普遍用setVisi ...

  7. java io系统_java中的io系统详解

    Java 流在处理上分为字符流和字节流.字符流处理的单元为 2 个字节的 Unicode 字符,分别操作字符.字符数组或字符串,而字节流处理单元为 1 个字节,操作字节和字节数组. Java 内用 U ...

  8. java 三大集合_java中的三大集合入门笔记(简单实用)

    为什么使用集合框架 如图: 集合的好处: 集合弥补了数组的缺陷,它比数组更灵活更实用,可大大提高软件的开发效率,而且不同的集合适用于不同的场合. Java集合主要分为以下3种类型 Java集合框架提供 ...

  9. java 序列化实例_Java中的序列化与反序列化实例

    创建的字节流与平台无关.因此,在一个平台上序列化的对象可以在另一个平台上反序列化. 为了使Java对象可序列化,我们实现java.io.Serializable可序列化接口. ObjectOutput ...

最新文章

  1. 享乐不尽 聚 VR一体机艳冠群雄
  2. 文字输入限制_输入框设计,设计样式及设计要点
  3. Codeforces Round #524 Div. 2 翻车记
  4. 电脑技巧:如何开机进入纯净的Windows系统,看完你就会了!
  5. C# 强大的新特性 Source Generator
  6. python解析pcap包已text格式输出_python分析pcap包
  7. epochs,batch_size,iterations详解
  8. cocos2dx shader 变灰 及 冰冻效果
  9. 计算机九宫格游戏怎么玩,《九宫格数独》怎么玩 数独玩法介绍
  10. 原生js自定义提示框
  11. Code Server 是什么?
  12. 无法访问网址的最基本原因分析,让你永远无法访问淘宝/京东
  13. 饿了么分布式服务治理及优化经验(含PPT)
  14. springmvc java.lang.IllegalStateException: getOutputStream() has already been called for this respon
  15. 计算机考研301数学一攻略,国家海洋技术中心
  16. Oracle 如何删除控制文件中rman备份到磁带的备份集信息(RMAN-06091)
  17. IP数据包的路由转发
  18. Python安装.whl文件流程及问题解决
  19. 用Adobe Reader PDF阅读器来验证电子签名有效性
  20. Quectel_Ec600硬件练习

热门文章

  1. Linux 下 网卡重启
  2. Java观察者模式事件委托(通过dota和王者荣耀故事讲解)
  3. 51Nod - 1298(点到线段的距离)
  4. Centos Linux 离线安装 MySQL 5.7、使用MySQL
  5. Eight II HDU - 3567
  6. 更改vim配色以及其他设置
  7. 交直流DIN导轨电源行业调研报告 - 市场现状分析与发展前景预测(2021-2027年)
  8. 14、ICMP协议的主要功能
  9. Redis之Vs Memcached
  10. STM32 CubeMX如何生成微秒(us)级延时