一、问题分析:
输入一行字母,那么会以换行结束。所以可以存入数组,也可以逐个输入,遇到换行结束。
要统计各个类的个数,就要逐个判断是哪个分类的。
由于在ASCII码中,数字,大写字母,小写字母分别连续,所以可以根据边界值判断类型。
二、算法设计:
1、读入字符,直到遇到换行结束。
2、对于每个字符,判断是字母还是数字,或者空格,或者是其它字符。
3、对于每个字符判断后,对应类别计数器自加。
4、最终输出结果。
public static void main(String[] args) {// TODO Auto-generated method stub
int abcCount=0//英文字母个数
int spaceCount=0//空格键个数
int numCount=0//数字个数
int otherCount=0//其他字符个数
Scanner scan=new Scanner(System.in)
String str=scan.nextLine()
char[] ch = str.toCharArray()
for(int i=0i<ch.lengthi++){
if(Character.isLetter(ch[i])){
//判断是否字母
abcCount++
}
else if(Character.isDigit(ch[i])){
//判断是否数字
numCount++
}
else if(Character.isSpaceChar(ch[i])){
//判断是否空格键
spaceCount++
}
else{
//以上都不是则认为是其他字符
otherCount++
}
}
System.out.println("字母个数:"+abcCount)
System.out.println("数字个数:"+numCount)
System.out.println("空格个数:"+spaceCount)
System.out.println("其他字符个数:"+otherCount)