Java学习实例——数组_定义一个字符类型的数组, 存储着大写字母、小写字母、数字 ,统计每个小写字母各有多少个并打印输出

  问题:定义一个字符类型的数组, 存储着大写字母、小写字母、数字 ,统计每个小写字母各有多少个并打印输出。

方法一:

import java.util.Scanner;

public class Homework02 {
    public static void main(String[] args) {

        Scanner sc = new Scanner(System.in);
        //定义一个char类型的数组,获取char数组中小写字母,识别小写字母值并计数
        arrCharOpera();
    }
    //定义一个char类型的数组,进行操作
    public static void arrCharOpera(){
        char[] arrChar1 = {'a','A','c','D','F',1,23,45,'a','c','c','b','f','f'};
        //获取char数组中小写字母
        char[] charLower =  loweredCharAmout(arrChar1);
        
        //小写字母排序,将重复的字母排到一起
        charLowerOrder(charLower);

        //识别小写字母值并计数
        charident(charLower);
    }

    //统计char数组中小写字母
    public static char[] loweredCharAmout(char[] arrChar1){
        //定义一个数组接收小写字母,因为数组必须有长度所以我们先预定长度为原数组的长度
        char[] arrLower1 = new char[arrChar1.length];
        int j = 0;
        for (int i = 0 ; i < arrChar1.length ; i++){
            if(arrChar1[i] >= 'a' && arrChar1[i] <= 'z'){
                arrLower1[j++] = arrChar1[i];
            }
        }
        System.out.println("数组中小写字母的数量为:"+j);
        //定义一个新数组存放小写字母(将空字符清理出去)
        char[] arrLower2 = new char[j];
        for(int i = 0; i < j;i++){
            arrLower2[i] = arrLower1[i];
        }
        return arrLower2;
    }
    //小写字符排序
    public static char[] charLowerOrder(char[] charLower ){
        if(charLower.length > 1){
            //选择排序,将重复的字符排列到一起
            for (int i = 0 ; i < charLower.length ; i++){
                for(int j = i+1; j < charLower.length; j++){
                    if(charLower[i] > charLower[j]){
                        char temp = charLower[i];
                        charLower[i] = charLower[j];
                        charLower[j] = temp;
                    }
                }
            }
        }
        return charLower;
    }
    //识别小写字母值并计数
    public static void charident(char[] charLower){
        //用于计算重复字符的数量,默认1个
        int j = 1;
        if(charLower.length > 1){
            for (int i = 0 ; i < charLower.length -1 ; i++){
                //若有重复的,j++
                if(charLower[i]==charLower[i+1]){
                    j++;
                }else{
                    //遇见下一个字符不一样的,输出出去
                    System.out.println("数组中小写字母"+charLower[i]+"的数量:"+j);
                    //j重新计算数量
                    j = 1;
                }
                //因为最后一个字符没有下一个,无法比较,所以特地拿出来
                if(i+1 == charLower.length-1 ){
                    System.out.println("数组中小写字母"+charLower[i+1]+"的数量:"+j);
                }
            }
        }else if(charLower.length == 1){
            System.out.println("数组中小写字母"+charLower[0]+"的数量:"+j);
        }else{
            System.out.println("数组中不存在小写字母");
        }

    }
}

方法二:

public class Homework02 {
    public static void main(String[] args) {

        //定义一个char类型的数组,获取char数组中小写字母,识别小写字母值并计数
        char[] arrChar1 = {'a','A','c','D','F',1,23,45,'a','c','c','b','f','f'};

        for(char j = 'a' ; j <= 'z' ; j++){
            //进行计数
            int reault = 0
            for(int i = 0;i < arrChar1.length ;i++){
                //判断字符在'a'和'z'之间即可
                if(arrChar1[i] >= 'a' && arrChar1[i] <= 'z'){
                    reault++;
                }
            }
            System.out.println(j+"的字母的个数是:"+reault);
        }

    }
}

 

posted @ 2021-04-08 20:17  泰初  阅读(1543)  评论(0编辑  收藏  举报