输入字符串,显示字符串中各个字符出现的次数

输入字符串,显示字符串中各个字符出现的次数

题目:任意输入一字符串,之后显示该字符串中每个字符出现的次数。

public class countLetterTest {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        System.out.println("Please enter the String:");
        String str = input.nextLine();
        countLetter(str);
        input.close();
    }

    public static void countLetter(String s) {
        char[] ch1 = s.toCharArray();
        char[] ch2 = new char[s.length()];
        int[] count_number = new int[s.length()];
        boolean repeatchar = false;
        /*
         * 判断字符和前一个字符是否重复
         */
        for (int j = 0; j < ch1.length; j++) {
            for (int i = j - 1; i >= 0; i--) {
                if (ch1[j] == ch1[i]) {
                    repeatchar = true;
                    break;
                }
            } 
            /*
             *如果不重复的话,则将ch1中 对应的数组存储在ch2中。
             */
            if (!repeatchar) {
                ch2[j] = ch1[j];
                /*
                 * 统计字符的个数
                 */
                for (int k = j; k < ch1.length; k++) {
                    if (ch2[j] == ch1[k]) {
                        count_number[j]++;
                    }
                }
                repeatchar = false;
            }
        }
        for (int j = 0; j < ch2.length; j++) {
//          if (Character.isLetter(ch2[j]) || Character.isDigit(ch2[j]))
                System.out.println("char:" + ch2[j] + " is:" + count_number[j]);
        }
    }
}

基本的思路:
1、将输入的字符串转化为数组。
2、再创建一个字符数组来储存之前的字符数组中没有重复的字符,并且统计其个数存于另外一个整数数组当中。

存在的问题:
1、存储无重复的字符的字符数组不能随意的改变大小【以后学习深入之后再作改进】
2、只能显示字符和数字,特殊字符则无法正常显示【后续解决】

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值