java中utp_JAVA 练习2

题目:统计某段文字中“的”字出现了几次。(文字内容已保存在本地1.txt文件中)

1.txt中的文字:

这篇文章的标题

它的风格以及主要的内容。

呜呜呜说明天要期中考试,慌了慌了。

分析题目可知,要读取文件中的文字,然后检查“的”出现了几次

这下面可以不用看,使用的方法我都在注释里说明作用了,想深入了解的可以看一下,都很不错的。

用IO流编写一个程序,统计并输出某个文本文件中“a”字符的个数(这个是这个题的低配):

最后还需要转一下UTF-8

2d132f93d045468995b989433cec2507.png

为什么要换成UTF-8呢?

utf-8考虑了很多种不同国家的字符,涵盖整个unicode码表,所以其存储一个字符的编码的时候,使用的字节长度也从1字节到4字节不等;而GBK只考虑中文——在unicode中的一小部分——的字符,的编码,所以它算好了只要2个字节就能涵盖到绝大多数常用中文(2个字节能表示6w多种字符),所以它存储一个字符的时候,所用的字节长度是固定的;

1 packagetask2;2

3 importjava.io.FileReader;4 importjava.io.IOException;5 importjava.io.BufferedReader;6

7 /*

8 *统计某段文字中“的”字出现了几次。(文字内容已保存在本地1.txt文件中)9 */

10 public classtask2 {11 public static void main(String[] args) throwsIOException {12 //BufferedReader类从字符输入流中读取文本并缓冲字符,以便有效地读取字符,数组和行

13 BufferedReader reader = new BufferedReader(new FileReader("C:\\Users\\lenovo\\Desktop\\1.txt"));14 String str = null;15 String str2 = "的";16 int num = 0;17 //.readLine()方法 :读一行文字并返回该行字符,若读到文件末尾,则返回null:18 //即当遇到换行符('\ n'),回车符('\ r')时会终止读取表示该行文字读取完毕且返回该行文字(不包含换行符和回车符)

19

20 while((str = reader.readLine() )!= null) {21 //.indexOf方法: 返回指定字符在字符串中第一次出现处的索引,如果此字符串中没有这样的字符,则返回 -122 //这里为什么可以当做字符看呢?因为utp-8中char可以是1-6个字节

23 while(str.indexOf(str2) >= 0) {24 //这里是把str中出现“的”字之前的去掉,再去检验剩下的字里还有没有“的”,防止重复

25 int index =str.indexOf(str2);26 str = str.substring(index +str2.length());27 num++;28 }29 }30

31 System.out.println("文字中“的”个数为 " +num);32 reader.close();33 }34 }

一定不要忘了转UTF-8 !!!

结果:

32fcdbfde9f44930cd0eb330d97675c3.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值