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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

做入学测试时出现了这道题。看大部分人做都用到了数组,Map等方法。由于对Map掌握比较欠缺。所以跟大家分享一种更适用于初学者的方法。
public class Test4{
   public static void main(String[] args){
        //输入一串字符串
        String str = "abcdfasdaf";
        //我的思路:先遍历从a~z,在拿a一一和字符串中的数字进行比较
        //          如果相等,则数字加一。但这样会出现num一直加,或者出现
        //            输出num一直等于0的情况,对于第一种情况,则在比较完一个
        //            字符串后,另num重新等于1.第二种情况,如果出现0,则跳出
        //          本次循环,进入下次循环。
        for(char i = 'a';i <= 'z';i++){
                int num = 0;
                for(int j = 0;j<str.length();j++){
                        if(i == str.charAt(j)){
                                num++;
                        }
                       
                }
                if(num == 0){continue;}
                System.out.println(i+"("+num+")");
        }
   }
}
欢迎大家批评指正:D

1 个回复

倒序浏览
忘记发题了。。。。。取出一个字符串中字母出现的次数。如:字符串:"abcdekka27qoq" ,输出格式为:a(2)b(1)k(2)...
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马