//1\u0026#x20;打印有多少个大写字母\u0026#x20;、小写字母\u0026#x20;、数字【简单】 String str = "AJFDOI987EQJF9Q7498OFJALKJF9Vmvaou809890q9jldaouq1100inbknvll".trim(); int tempA = 0,tempa = 0,temp0 = 0; for(int i = 0;i<str.length();i++){ int ascii = str.charAt(i); if(ascii <= 90 && ascii >= 65){ tempA++; } if(ascii <= 122 && ascii >= 97){ tempa++; } if(ascii <= '9' && ascii >= '0'){ temp0++; } } System.out.println("大写字母:"+tempA+" 小写字母:"+tempa+" 数字:"+temp0);

    //2\u0026#x20;、打印有多少个不同的字符【简单】
    int different = 0;
    for(int i = 0;i < str.length();i++){
        boolean flag = true;
        char strChar = str.charAt(i);
        for(int j = 0;j < str.length();j++){
            if(j == i){
                continue;
            }
            if(strChar == str.charAt(j)){
                flag = false;
                break;
            }
        }
        if (flag){
            different++;
        }
    }
    System.out.println("共有 "+different+" 个不同的字符");

    int numA = 0;

    //3\u0026#x20;、打印有多少个A【简单】
    for(int i = 0;i < str.length();i++){
        char strChar1 = str.charAt(i);
        if(strChar1 == 'A'){
            numA++;
        }
    }
    System.out.println("共有 "+numA+" 个 A");

    //4\u0026#x20;、打印每个字符的个数【较难】
    List<Character> list = new ArrayList();
    for(int i = 0;i<str.length();i++){
        boolean flag = true;
        if(i > 0){
            for(int j = 0;j<i;j++){
                if(str.charAt(i) == str.charAt(j)){
                    flag = false;
                    break;
                }
            }
        }
        if(flag){
            list.add(str.charAt(i));
        }
    }
    int[] everyNumCounts = new int[list.size()];

    for(int i = 0;i < str.length();i++){
        for(int j = 0;j < list.size();j++){
            if(str.charAt(i)== list.get(j)){
                everyNumCounts[j]++;
            }
        }
    }

    for (int i = 0;i < list.size();i++){
        System.out.print(list.get(i)+":");
        System.out.print(everyNumCounts[i]+" ");
    }
}

代码没有语法错误,但是存在逻辑问题。

1、打印有多少个大写字母、小写字母、数字:代码逻辑正确。

2、打印有多少个不同的字符:代码逻辑正确,但是可以使用Set集合来实现更简洁的代码。

3、打印有多少个A:代码逻辑正确。

4、打印每个字符的个数:代码逻辑正确,但是可以使用HashMap来实现更简洁的代码。另外,列表list可以直接使用HashSet来存储不重复的字符。

Java 字符串统计分析代码优化建议

原文地址: https://www.cveoy.top/t/topic/qb9K 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录