public class Test { public static void main(String[] args) {
String str = ""; // 新建空字符串 Scanner sc = new Scanner(System.in); // 新建Scanner for (int i = 0; i < 20; i++) { //遍历20次收集字符 System.out.println("请输入第" + (i + 1) + "个字符");
str += sc.next();
}
char[] chars = str.toCharArray(); // 字符串转char数组 int upper = 0; //定义计数器 int lower = 0; for (int i = 0; i < chars.length; i++) { // 遍历数组 char c = chars; if (c >= 'A' && c <= 'Z') { // 判断是否在 A~Z之间 upper++;
} else if (c >= 'a' && c <= 'z') { // 判断是否在 a~z 之间 lower++;
}
}
System.out.println("大写字母有:" + upper + "个"); //输出 System.out.println("小写字母有:" + lower + "个");
}
}
一气呵成,简直完美,然后run了一下
发现1个问题,一个问题是Scanner由于是接受字符串,所以对数量没有限制,所以输入大于1个字符也不能判断是否错误。
所以对上述代码进行更改,加入了判断机制,并且可以控制字符串获取的长度
String str = ""; // 新建空字符串 System.out.println("输入20个字符开始"); // 显示信息 int a = 0; // 输入计数 while (true) { // 输入加入判断机制 System.out.print("请输入第" + (a + 1) + "个字符: ");
String str2 = new Scanner(System.in).next();