天天看点

关于统计字符串中字母,数字,空格,其他字符的统计方式看法

package test;

import java.io.BufferedReader;

import java.io.FileReader;

public class Demo1 {

public static void main(String[] args) throws Exception {
	 /**
	  *    个人认为这个写的不对哦。不如使用Character.isSpace()   
	  *     空格字符无法统计,可以试试
	  */
	 
    StringBuffer sbf = new StringBuffer("fsdf fdsf  ds@@@132fdf 4s !");  
    String line;  
    int character = 0,digital = 0, blank = 0, other = 0;  
    String str = sbf.toString();  
    char[] arr = str.toCharArray();  
    for(char c : arr)  
    {  
        if((c >= 'a' && c<= 'z') || (c >= 'A' && c <= 'Z'))  
        {  
            character++;  
        }  
        else if(c >= '0' || c <= '9')  
        {  
            digital ++;  
        }  
        else if(c ==' ')  
        {  
            blank++;  
        }  
        else  
        {  
            other++;  
        }  
        System.out.println("输入的符串为:"+str);   
        System.out.println("总共字符数目为"+str.length());   
        System.out.println("字母数目"+character);   
        System.out.println("数字数目"+digital);   
        System.out.println("空格数目"+blank);  
        System.out.println("其他字符数目"+other);  
}
}
           

}

不如修改后的如:

package test;

import java.io.BufferedReader;

import java.io.FileReader;

public class Demo1 {

public static void main(String[] args) throws Exception {
	 /**
	  *    个人认为这个写的不对哦。不如使用Character.isSpace()
	  */
	 
    StringBuffer sbf = new StringBuffer("fsdf fdsf  ds@@@132fdf 4s !");  
    String line;  
    int character = 0,digital = 0, blank = 0, other = 0;  
    String str = sbf.toString();  
    char[] arr = str.toCharArray();  
    for(char c : arr)  
    {  
        if( Character.isLetter(c))  
        {  
            character++;  
        }  
        else if(Character.isDigit(c))  
        {  
            digital ++;  
        }  
        else if(Character.isSpaceChar(c))  
        {  
            blank++;  
        }  
        else  
        {   // Character.isSpaceChar(ch)
            other++;  
        }  
        System.out.println("输入的符串为:"+str);   
        System.out.println("总共字符数目为"+str.length());   
        System.out.println("字母数目"+character);   
        System.out.println("数字数目"+digital);   
        System.out.println("空格数目"+blank);  
        System.out.println("其他字符数目"+other);  
}
}
           

}

从其他处看到的重新思考整理了一下,多谢借阅,上面的第一个代码看着没有问题不明白为什么检验的时候出错。