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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始


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

/*思路:1.键盘录入一个字符串
        2.建立一个以字符为键,出现次数为值的并且能排序的集合,所以用TreeMap
        3.判断字符是否出现过(值是否为null),如为null,则设定值为1;
                                                            如不为null,则值+1;
        4.遍历TreeMap
        5.创建一个StringBuilder来存数组,并转化成字符串输出。
*/
public class ChaZiMu {
        public static void main(String[] args) {
                //创建一个键盘录入对象
                Scanner sc = new Scanner(System.in);
                System.out.println("请输入一个你要查询的字符串:");
                String s = sc.nextLine();
                //把字符串转化成字符数组
                char[] ch =s.toCharArray();
                //创建一个TreeMap集合:根据集合的值来是否为null来判断字符是否出现
                TreeMap<Character,Integer> tr = new TreeMap<Character,Integer>();
                for(char chs:ch){
                        //遍历字符数组,求出每个字符的值;
                        Integer i = tr.get(chs);
                        //没有出现过的字符,给他的值设置为1;
                        if(i==null){
                                tr.put(chs, 1);
                        }
                        //出现过的,给他的值设置为i+1;
                        else{
                                tr.put(chs, i+1);
                        }
                }
                //创建一个StringBuilder来存储集合中的字符以及它的出现次数
                StringBuilder sb = new StringBuilder();
                Set<Character> set = tr.keySet();
                for(Character ch1: set){
                        Integer i = tr.get(ch1);
                        sb.append(ch1+"(").append(i+")");
                       
                }
                //把StringBuilder转化成字符串并输出
                System.out.println(sb.toString());

        }

}

5 个回复

倒序浏览
写程序就应该这样子嘛~
回复 使用道具 举报
pengbeilin 发表于 2015-8-23 23:34
写程序就应该这样子嘛~

谢谢夸奖,刚开始还是养成好习惯的好,我感觉。
回复 使用道具 举报
好习惯就是要规范吗
回复 使用道具 举报
这题目,面试或者笔试考试,很常见~~~~~
回复 使用道具 举报
向你学习   
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马