public static void main(String[] args) {
int a=0,b=0,c=0,d=0,i;
System.out.println("请输入一串字符");
Scanner sc =new Scanner(System.in);
String s=sc.next();
for(i=0;i<s.length();i++){
char e=s.charAt(i);
if((e>='a' && e<='z') || (e>='A' && e<='Z')){
a=a+1;
}
else if(e>='0' && e<='9'){
b=b+1;
}
else if(e==' '){
c=c+1;
}
else{
d=d+1;
}
}
System.out.println("英文字母的个数为:"+a);
System.out.println("数字的个数为:"+b);
System.out.println("空格的个数为:"+c);
System.out.println("其他字符的个数为:"+d);
}
这里需要导入Scanner,值得注意的是:我们在使用字符串的时候需要使用next();其他的类型例如int 使用的是intnext(),但是你会发现并没有stringnext(),我们这里直接使用next()即可。
我们这为什么会重新将字符串赋值给char e呢,因为我们要使用到Ascall码,所有先将字符串转换为字符,使用charAt这一方法。