A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

3、 取出一个字符串中字母出现的次数。如:字符串:"abcdekka27qoq" ,输出格式为:a(2)b(1)k(2)...
public class test3
{
        public static void main(String[] args)
        {
                //定义一个字符串
                String str = "abcdekka27qoq";
               
                //将字符串转化为字符数组
                char[] buf = str.toCharArray();
               
                //定义一个数组,由于字符最大值z的Ascall码为122,将字符数组定义为123
                int[] num = new int[123];
               
                //将字符放入数组num变为nun数组的下标值,举例:buf[0] = 'a';将它放入num[],‘a’变为Asscall值为97
                //即为num[97],通过循环num[97]++;即可记录a出现的次数
                for(int i = 0; i < buf.length; i++)
                        num[buf[i]]++;
               
                //同过for循环遍历数组num
                for(int i = 0; i < num.length; i++)
                {
                        //通过i的大小满足(i>=65 && i<=90) || (i>=97&& i<=122)则找到数组num所有大小写字母
                        //并且要满足num[i]>0才能找出并输出字符串中出现的字母
                        if(((i>=65 && i<=90) || (i>=97&& i<=122)) && num[i] > 0)
                        {
                                System.out.print((char)i + "(" + num[i] + ")");
                        }
                }
        }
}

评分

参与人数 1技术分 +1 收起 理由
lwj123 + 1 淡定

查看全部评分

4 个回复

倒序浏览
{:3_66:}我觉得还是用map集合做比较简单
回复 使用道具 举报
楼主不错,将字符的ascii作为自定义hash数组的下标
回复 使用道具 举报
这注释也太多了吧  亲 看着有点胖
回复 使用道具 举报
先收藏。。。。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马