黑马程序员技术交流社区

标题: 分享一题入学测试题配详细注释,绝对对你有所帮助。 [打印本页]

作者: 廖彬    时间: 2015-1-12 22:41
标题: 分享一题入学测试题配详细注释,绝对对你有所帮助。
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] + ")");
                        }
                }
        }
}
作者: Imp_x    时间: 2015-1-12 23:47
{:3_66:}我觉得还是用map集合做比较简单
作者: jojo    时间: 2015-1-13 00:07
楼主不错,将字符的ascii作为自定义hash数组的下标
作者: 我为你着迷    时间: 2015-1-13 17:11
这注释也太多了吧  亲 看着有点胖
作者: 飞翔的蜗牛    时间: 2015-1-13 17:43
先收藏。。。。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2