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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

/* 键盘录入一段字符串,要求使用map集合统计出字符串中字母和数字出现的次数,如果有其他字符则当做
* 号来统计,最后按指定方式输出(不要求排序)
* 例如录入字符串:aaaabbbcccddd1112233^^^
* 输出的格式为: *(3),1(3),2(2),3(2),a(4),b(3),c(3),d(3) (注意:括号前面是字符,里面是次数)
    1,创建键盘录入对象
        2,创建出map集合
        3,使用map集合开始添加元素
        4,遍历和拼接字符串
        5,输出拼接后的字符串
*/
public class Test4 {
        public static void main(String[] args) {
                Scanner sc =new Scanner(System.in);
                System.out.println("输入一段字符串:");
                String  line =sc.nextLine();
                char[]  ch =line.toCharArray();
                TreeMap<Character,Integer> map =new TreeMap<>();
                for (int i = 0; i <ch.length; i++) {
                        if(!map.containsKey(ch[i])){
                                map.put(ch[i], 1);
                        }else{
                                map.put(ch[i], map.get(ch[i])+1);
                        }
                }
                //遍历和拼接字符串
                Set<Character> set =map.keySet();
                StringBuilder sb =new StringBuilder();
                for (Character s:set) {
                        sb.append(s).append("(").append(map.get(s)).append(")");
                }
                System.out.println(sb);
        }
}

4 个回复

倒序浏览
6666666666666666666
回复 使用道具 举报
”如果有其他字符则当做 * 号来统计”但是这个功能没有实现
回复 使用道具 举报
”如果有其他字符则当做 * 号来统计”但是这个功能没有实现
回复 使用道具 举报
拼接的时候好像缺少了逗号吧
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马