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

本文对比了两种Java中统计字符串字符类型的方法,指出直接比较字符可能存在的问题,并推荐使用Character类的方法进行更准确的字符分类。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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);  
}
}

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

金玉满堂@bj

朋友,你的打赏就是我创作的认可

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值