写完参考其他代码才知道可以直接调API判断。。。

import java.util.Scanner;

/**
 * 【统计字符】
 *
 */
public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        String nextLine = sc.nextLine();

        int character  = 0;
        int blank = 0;
        int number = 0;
        int other = 0;

        char[] chars = nextLine.toCharArray();
        for (int i = 0; i < chars.length; i++) {
            if (Character.isLetter(chars[i])) {
                character++;
            } else if (Character.isSpaceChar(chars[i])) {
                blank++;
            } else if (Character.isDigit(chars[i])) {
                number++;
            } else {
                other++;
            }
        }

        System.out.println(character);
        System.out.println(blank);
        System.out.println(number);
        System.out.println(other);
    }
}

不调用API的代码

import java.util.Scanner;

/**
 * 【统计字符】
 *
 */
public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        String nextLine = sc.nextLine();

        int character  = 0;
        int blank = 0;
        int number = 0;
        int other = 0;

        char[] chars = nextLine.toCharArray();
        for (int i = 0; i < chars.length; i++) {
            if (('A' <= chars[i] && 'Z' >= chars[i]) || ('a' <= chars[i] && 'z' >= chars[i])) {
                character++;
            } else if ('0' <= chars[i] && '9' >= chars[i]) {
                number++;
            } else if (' ' == chars[i]) {
                blank++;
            } else {
                other++;
            }
        }

        System.out.println(character);
        System.out.println(blank);
        System.out.println(number);
        System.out.println(other);
    }
}