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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

3.分析以下需求,并用代码实现:
(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)

6 个回复

倒序浏览
利用HashMap键元素不能重复的特性。当存入键相同的元素是,会替换元素对应的值。所以在存入字符时,判断集合中是否有该元素,有值就+1,没有,值就存入1

点评

谢谢亲啦,我做出来了  发表于 2016-8-3 00:36
回复 使用道具 举报
只要静下心来认真思考,是可以的
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());               
                }
        }

       
回复 使用道具 举报
明确楼上说的思路,很好写的
回复 使用道具 举报
浅色寂语66 发表于 2016-8-3 00:35
只要静下心来认真思考,是可以的
public class homework2 {
                public static void main(String[] args) {

没有领悟好输出语句的表达
回复 使用道具 举报
3楼正解
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马