输入一段字符串,统计其中大写字母、小写字母、数字、空格和其它字符的个数。
程序代码:
Scanner sc = new Scanner(System.in);
String next = sc.next();
int num_u=0,num_l=0,num_d=0,num_s=0,other=0;
for (int i = 0; i < next.length(); i++) {
char c = next.charAt(i);
if(Character.isUpperCase(c)){
num_u++;
} else if (Character.isLowerCase(c)) {
num_l++;
} else if (Character.isDigit(c)) {
num_d++;
} else if (Character.isSpaceChar(c)) {
num_s++;
}else{
other++;
}
}
System.out.printf("%d,%d,%d,%d,%d",num_u,num_l,num_d,num_s,other);
当输入this is a booK 998.时,发现输出错误。
原因是next()接收数据时,遇到空格结束。
修改:
String next = sc.nextLine();
将next()改成nextLine()解决问题。