wof168 2023-04-18 18:25 采纳率: 95.7%
浏览 14
已结题

java统计字符字母个数

-



package 字符串;

import java.util.Scanner;

public class 统计 {
//字母个数  数字个数  空白字符个数  其他字符个数
    public static void main(String[] args) {
        // TODO 自动生成的方法存根
        Scanner sc  = new Scanner(System.in);
        String a=sc.next();
        String[] c=a.split("");
        int count1=0;//数字
        int count2=0;//字母
        int count3=0;//其他字符
        int count4=0;//空白字符
        for(int i=0;i<a.length();i++) {
            char b=c[i].charAt(0);
            int d=b;
            
            if(d>=48&&d<=57) {
                count1++;
            }
            else if(d>=64&&d<=90) {
                count2++;
            }
            else if((d>=1&&d<=47)||(d>=91&&d<=95)||(d>=123&&d<=127)||(d==96)) {
                count3++;
            }
            else if(d==0) {
                count4++;
            }
        }
        System.out.println("数字:"+count1);
        System.out.println("字母:"+count2);
        System.out.println("其他字符:"+count3);
        System.out.println("空白字符:"+count4);
        sc.close();
    }

}

为什么他只能输出数字的个数输出不了字母其他字母空白字符的个数?

  • 写回答

3条回答 默认 最新

  • 阳光宅男xxb 2023-04-19 09:08
    关注

    next只能读取一个值,如有空格不会再读取,所以使用nextLine。其次字母和空白符的判断方法不对。修改如下:

    
    public static void main(String[] args) {
               // TODO 自动生成的方法存根
               Scanner sc  = new Scanner(System.in);
               String a=sc.nextLine();
               int count1=0;//数字
               int count2=0;//字母
               int count3=0;//其他字符
               int count4=0;//空白字符
             
               //转为小写字母:
               a = a.toLowerCase();
               
               for(int i=0;i<a.length();i++) {
                   char b=a.charAt(i);
                   int d=b;
                 
                   if(d>=48&&d<=57) {
                       count1++;
                   }
                   else if(d>=97&&d<=122) {
                       count2++;
                   }
    
                   else if(d==32) {
                       count4++;
                   }else {
                       count3++;
                   }
               }
               System.out.println("数字:"+count1);
               System.out.println("字母:"+count2);
               System.out.println("其他字符:"+count3);
               System.out.println("空白字符:"+count4);
               sc.close();
        }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 4月27日
  • 已采纳回答 4月19日
  • 创建了问题 4月18日

悬赏问题

  • ¥170 如图所示配置eNSP
  • ¥20 docker里部署springboot项目,访问不到扬声器
  • ¥15 netty整合springboot之后自动重连失效
  • ¥15 悬赏!微信开发者工具报错,求帮改
  • ¥20 wireshark抓不到vlan
  • ¥20 关于#stm32#的问题:需要指导自动酸碱滴定仪的原理图程序代码及仿真
  • ¥20 设计一款异域新娘的视频相亲软件需要哪些技术支持
  • ¥15 stata安慰剂检验作图但是真实值不出现在图上
  • ¥15 c程序不知道为什么得不到结果
  • ¥15 键盘指令混乱情况下的启动盘系统重装