Java 中实现文章单词,标点的统计办法。

经过一下午的努力终于实现了这个方法。

并且搞清楚了。BufferReader 的 toString() 方法,与StringBuffer 的toString()方法的不同。

两个代码如下:

import java.io.*;
class TestIO
{
 public static void main(String[] args) throws Exception
 {
  FileReader fr=new FileReader("wo.txt");
  BufferedReader br=new BufferedReader(fr);
        StringBuffer buf=new StringBuffer();
  int words = 0;
        int ip = 0;
  String ln=null;
        boolean wordflag = false;
  char c[]={};
while((ln=br.readLine())!=null){
 buf.append(" "+ln); 
   String str=buf.toString();
    c=str.toCharArray();
 System.out.println(str);

}
for(int i=0; i<c.length; i++){
            if((c[i]>='a' && c[i] <= 'z') || (c[i] >= 'A' && c[i] <= 'Z')){
                if(wordflag) {
                    continue;
                }else{
                    words++;
                }
                wordflag = true;
            }else{
                wordflag = false;
                if(c[i] != ' ')
                    ip++;
            }
        
}
        System.out.println("words=" + words);
        System.out.println("ip=" + ip);
}
}

 

 

 

import java.io.*;
class EasyString
{
 public static void main(String[] args) throws Exception
 {
  FileReader fr=new FileReader("wo.txt");
  BufferedReader br=new BufferedReader(fr);
        StringBuffer buf=new StringBuffer();
  String ln=null;
  int words = 0;
        int ip = 0;
        boolean wordflag = false;
   String str=br.toString();
   char[] c=str.toCharArray();
 
 System.out.println(str);
 
 for(int i=0; i<c.length; i++){
            if((c[i]>='a' && c[i] <= 'z') || (c[i] >= 'A' && c[i] <= 'Z')){
                if(wordflag) {
                    continue;
                }else{
                    words++;
                }
                wordflag = true;
            }else{
                wordflag = false;
                if(c[i] != ' ')
                    ip++;
            }
        
}
        System.out.println("words=" + words);
        System.out.println("ip=" + ip);
}
}

 

Hope you can find the difference!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值