黑马程序员技术交流社区

标题: 2、 取出一个字符串中字母出现的次数。如:字符串:"abcdekka27qoq" [打印本页]

作者: b277967086    时间: 2015-4-24 20:53
标题: 2、 取出一个字符串中字母出现的次数。如:字符串:"abcdekka27qoq"
/*
* 2、 取出一个字符串中字母出现的次数。如:字符串:"abcdekka27qoq" ,
* 输出格式为:a(2)b(1)k(2)...
*
*
*/

package com.itheima;

import java.util.Scanner;
import java.util.Set;
import java.util.TreeMap;

public class Test2 {

        public static void main(String[] args) {

                // 创建一个键盘录入对象
                Scanner sc = new Scanner(System.in);
                System.out.println("请输入一个字符串");
                // 接收键盘录入的字符串
                String str = sc.nextLine();
                // 将字符串转化成字符数组
                char[] ch = str.toCharArray();
                // 创建一个键值对集合对象
                TreeMap<Character, Integer> tm = new TreeMap<Character, Integer>();
                // for循环计算出字符出现的次数,并以键值对的形式存入集合
                for (Character c : ch) {
                        Integer count = tm.get(c);
                        // count为空,说明没有改键
                        if (count == null) {
                                tm.put(c, 1);
                                // 不为空,就让统计变量+1
                        } else {
                                count++;
                                tm.put(c, count);
                        }
                }
                // 定义一个缓存变量,用于接收输出值
                StringBuffer result = new StringBuffer();
                // 循环得到每一个键和值并拼接
                Set<Character> set = tm.keySet();
                for (Character key : set) {
                        Integer value = tm.get(key);
                        result.append(key).append("(").append(value).append(")");
                }

                System.out.println(result);
        }
}

作者: b277967086    时间: 2015-4-24 21:01
请多多指教
作者: j420984    时间: 2015-6-27 10:17
学习了,谢谢分享。




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