统计一个文本文件中单词的个数(超简单思路)

这是一道作业习题,可能难度不大吧。在我刚开始写这道题目的时候,上网搜了下,看了大家的思路。大致有以下几种:

1.先将文本文件中的内容追加到BufferString类型的变量中,然后将BufferString转换为String类型,因为String类有一个方法,可以将一个串中某个字符,全部用指定字符(比如空格)来代替(String.replace(“a”,“b”);),然后遇到空格就计数。转换后计算是很简单的,但是转换非空格的情况好像还挺多的。

2.是从一个String串中或者char[ ]数组中进行单词的计数,和这道题目就是差一个从文件中读取,我们先假设我们已经从文件中读取成功了,只需要一个字符一个字符的判断,这样题目就一样了。
其中有一个思路,是先设置一个标志flag=0,用来看是不是遇到空格,如果遇到了空格,标志flag=0;如果遇到的不是空格并且标志flag=0,那么就计数,并且把标志flag=1。如果所判断的内容只有字母加空格,这个绝对完美。

我的思路其实和第二种很相近,唯一不同的区别是,判断一个字符是不是字母,如果是第一次遇到字母就计数,其他情况不计数。我们来看以下代码:

int count = 0;
FileReader f = new FileReader("x.txt");
int x = f.read();
while(x!=-1)//读取文本文件内容,没有结束就进入循环
 {
	System.out.print((char)x);//输出文本内容可删除
	if(function(x))   //如果是字母
	{
		count++;     //计数
		x = f.read();
		while(function(x))//如果仍然是字母,只输出,并且读取下一个字符,
	//当不是字母时,跳出循环,进入外部的大循环,会进入else中,读取下一个字符,如果仍然不是字母,依旧会进入到else中,
	//直到遇到字母,进入if中,计数器count加一。
		 {
		System.out.print((char)x);//输出文本内容可删除
		x = f.read();
		}
	}	
	else
		x = f.read();
}
		f.close();
		System.out.println("\n该文本文件中单词个数是        "+count);
		
public static boolean function(int x)//判断一个字符是不是字母
 {
if((x>='a'&&x<='z')||x>='A'&&x<='Z')
	return true;
else
	return false;
}

一个简单的运行截图
在这里插入图片描述

写这篇博客有点小愧疚,你写博客就写你的博客吧,还说别人思路的小缺点,先表达一下歉意吧,也希望前辈不要放在心上,不与我这个小白计较。如果我有错误,也希望你们多多指正啊。

  • 14
    点赞
  • 49
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值