当前位置:编程学习 > JAVA >>

java统计Scanner输入的行数,制表位数以及空格数

最近在学C语言,每写一个C语言程序,就再写一个java的实现,发现简单的小程序,还是C语言简单啊。。。java写起来要复杂繁琐的多。。
说到统计,通常的需求是统计一篇文章的各种信息数据。但神需求无处不在,只要技术使用正确就一定可以解决的。
直接上代码。
 
import java.util.*;  
class  Test1  
{  
    public static void main(String[] args)  
    {  
        Scanner sc =new Scanner(System.in);  
        String str=sc.nextLine();  
        int n=0,m=0,p=0;  
        while(sc.hasNext()&&!str.equals("EOF"))  
        {  
            ++n;  
            for(int i=0;i<str.length();i++)  
            {  
                if(str.charAt(i)=='\t')  
                ++m;  
                if(str.charAt(i)==' ')  
                ++p;  
            }  
            str=sc.nextLine();    
        }  
        System.out.println("行数为"+n+"行,制表位有"+m+"个。空格有"+p+"个");  
    }  
}  

 

 
另外判断制表位和空格的时候也可以通过str.indexOf("\t")和str.indexOf(" ")
运行结果如下:
 
至于为啥在EOF后面还得输入任意字符呢?
因为程序一开始就是定义了一个Scanner接受用户输入,虽然之前的EOF让程序退出统计的那个while循环了,但由于输入完EOF后,我们又敲了一个回车,所以程序会再接受一次输入才能往下运行,输出统计数据。
这个程序也可以用上正则表达式,但有点高射炮打蚊子的感觉喽~
补充:软件开发 , Java ,
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,