
一、题目描述
输入一行字符,分别统计出包含英文字母、空格、数字和其它字符的个数。
数据范围:输入的字符串长度满足 1 \le n \le 1000 \1≤n≤1000 。
二、输入描述
输入一行字符串,可以有空格。
三、输出描述
统计其中英文字符,空格字符,数字字符,其他字符的个数。
四、解题思路
- 读取输入的一行字符串 s;
- 初始化变量 letters、spaces、digits 和 others 分别表示英文字母、空格、数字和其他字符的个数,初始值都为 0;
- 使用循环遍历字符串 s的每个字符: 
  - 如果字符是英文字母,使用 Character.isLetter© 判断,将 letters 自增 1;
- 如果字符是数字,使用 Character.isDigit© 判断,将 digits 自增 1;
- 如果字符是空格,使用 Character.isSpaceChar© 判断,将 spaces 自增 1;
- 如果字符不是英文字母、数字或空格,则将 others 自增 1;
 
- 循环结束后,输出 letters、spaces、digits 和 others 的值,分别表示英文字母、空格、数字和其他字符的个数;
五、Java算法源码
public static void main(String[] args) {
    Scanner scanner = new Scanner(System.in);
    while (scanner.hasNext()) {
        String s = scanner.nextLine();
        //统计其中英文字符,空格字符,数字字符,其他字符的个数
        int letters = 0;
        int spaces= 0;
        int digits = 0;
        int others = 0;
        int len = s.length();
        for(int i = 0; i < len; i++){
            char c = s.charAt(i);
            if(Character.isLetter(c)){
                letters++;
            }else if(Character.isDigit(c)){
                digits++;
            }else if(Character.isSpaceChar(c)){
                spaces++;
            }else{
                others++;
            }
        }
        // 统计其中英文字符,空格字符,数字字符,其他字符的个数
        System.out.println(letters);
        System.out.println(spaces);
        System.out.println(digits);
        System.out.println(others);
    }
}
六、效果展示

🏆下一篇:华为OD机试真题 Java 实现【组合出合法最小数】【2023Q1 200分】,附详细解题思路
🏆本文收录于,华为OD机试2023(Java)
本专栏包含了最新最全的2023年华为OD机试真题,有详细的分析和Java解答。已帮助1000+同学顺利通过OD机考。专栏会持续更新,每天在线答疑。











