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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© huangzhaoqing 中级黑马   /  2016-8-2 21:13  /  525 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

分析以下需求,并用代码实现:
(1)利用键盘录入,输入一个字符串
(2)统计该字符串中各个字符的数量
(3)如:
        用户输入字符串"If~you-want~to~change-your_fate_I_think~you~must~come-to-the-dark-horse-to-learn-java"
        程序输出结果:-(9)I(2)_(3)a(7)c(2)d(1)e(6)f(2)g(1)h(4)i(1)j(1)k(2)l(1)m(2)n(4)o(8)r(4)s(2)t(8)u(4)v(1)w(1)y(3)~(6)

3 个回复

倒序浏览
在HashMap中没有出现,此时存入的该字符对应的value为 1  *                         * 如果当前的字符,在HashMap中有,此时存入的该字符对应的value+1
回复 使用道具 举报
刚刚回复错了(1)将字符串变成字符数组  *         (2)遍历字符数组  *                 * 定义一个HashMap<Character,Integer>  *                 * 将字符及对应的数量存入到HashMap中  *                         * 如果当前的字符,在HashMap中没有出现,此时存入的该字符对应的value为 1  *                         * 如果当前的字符,在HashMap中有,此时存入的该字符对应的value+1
回复 使用道具 举报
不知道对不对,你可以看看
public class homework2 {
                public static void main(String[] args) {
                        Scanner sc =new Scanner(System.in);
                        System.out.println("请输入您的字符串");
                        String str=sc.next();
                        //将字符串变成字符数组
                        char[] arr = str.toCharArray();
                        //遍历字符数组
                        //定义HashMap集合,来存入字符及对应出现的次数
                        HashMap<Character,Integer> hs = new HashMap<>();
                        for (char thisarr : arr) {
                                Integer num = hs.get(thisarr);  //注意   此刻num为引用数据类型
                                if(num==null) {
                                        hs.put(thisarr, 1);
                                } else {
                                        hs.put(thisarr, num+1);
                                }
                        }
                        System.out.println(hs);
                        //将HashMap集合中的数据封装成a(2)b(1)k(2)...
                        //利用StringBuilder完成字符串的拼装
                        StringBuilder sb = new StringBuilder();
                        for (Map.Entry<Character,Integer> entry : hs.entrySet()) {
                                sb.append(entry.getKey()).append("(").append(entry.getValue()).append(")");
                        }
                        System.out.println(sb.toString());               
                }
        }

       
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马