编辑代码

//输入一行字符,分别统计出其中的英文字母、数字、空格和其他字符的个数
import java.util.Scanner;

public class Main{
    public static void main(String[] args){
        System.out.println("请输入一串字符...");
        Scanner sc = new Scanner(System.in);
        sc.useDelimiter("\n");
        String mystr = sc.next();
        
        //调用方法,判断字符串类型
        classify(mystr);
    }
    //判断类型的算法
    public static void classify(String str){
        //统计各种类型字符的数量并输出该类型的所有字符
        //先把字符串转化为数组,方便统计
        char[] strArr = str.toCharArray();
        //字母
        int num1 = 0;
        String num1Str = "";
        //数字
        int num2 = 0;
        String num2Str = "";
        //空格
        int space = 0;
        String spaceStr = "";
        //其他
        int other = 0;
        String otherStr = "";
        for(int i = 0;i<strArr.length;i++){
            //核心算法
            //利ACII码来区分字符的类型
            int acii = (int)strArr[i];
            if(48<=acii && acii>=57){//数字
                num2++;
                num2Str += strArr[i]+" ";
            }else if(acii == 32){//空格
                space++;
            }else if(){//字母
                //
            }else{//其他
                //
            }
        }

        //输出统计的结果
        System.out.println("存在字母个数:" + num1);
        System.out.println("存在字母如下:" + num1Str);

        System.out.println("存在数字个数:" + num2);
        System.out.println("存在数字如下:" + num2Str);

        System.out.println("存在空格个数:" + space);

        System.out.println("存在其他个数:" + other);
        System.out.println("存在其他如下:" + otherStr);
    }
}