这个题要注意输入的字符串可能带有空格,所以输入时应该使用nextLine()方法,而不能用next()方法,因为它不能识别空格。
@Test
public void test4() {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入字符串:");
String str = scanner.nextLine();
//输入的字符串有空格时用nextLine(),因为next()无法识别空格,会把空格之后的串直接丢到
System.out.println(str);
int letter = 0;
int num = 0;
int space = 0;//存空格个数
int other = 0;
char[] ch = str.toCharArray();
for (int i = 0; i < ch.length; i++) {
if((ch[i] >= 'a' && ch[i] <= 'z') || (ch[i] >= 'A' && ch[i] <= 'Z')) {
letter++;
} else if ((ch[i] >= '0' && ch[i] <= '9')) {
num++;
} else if (ch[i] == ' ') {
space++;
} else {
other++;
}
}
System.out.println("字母个数为:" + letter);
System.out.println("数字个数为:" + num);
System.out.println("空格个数为:" + space);
System.out.println("其他字符个数为:" + other);
}