需求:键盘录入一个字符串,统计其中各个字符出现的顺序
分析:
1.使用Scanner类获取一个字符串
2.创建HashMap集合,如果追求统计字符的美观性,可以使用TreeMap
3.遍历字符串得到每一个字符并将其作为TreeMap的键
4.通过键去集合中找相对应的值,看返回值是什么?
返回null:说明该字符在集合中不存在,就将该字符为键,次数1为值进行存储
返回的不是null:说明该字符在集合中存在,就再次将该字符作为键,次数+1为值进行存储
5.遍历集合
public class TreeMapDemo { public static void main(String[] args) { //创建TreeMap集合对象 TreeMap<Character,Integer>tm=new TreeMap<Character,Integer>(); //创建Scanner对象 Scanner sc=new Scanner(System.in); System.out.println("请输入一个字符串"); String s=sc.nextLine(); //遍历字符串 for (int i=0;i<s.length();i++){ //获取每一个字符 char key =s.charAt(i); //拿到的每一个字符到集合中找相对应的值 Integer value=tm.get(key); //判断返回值 if (value==null){ tm.put(key,1); }else { value++; tm.put(key,value); } } //遍历集合并拼接 StringBuilder sb=new StringBuilder(); Set<Character> keySet=tm.keySet(); for (char key :keySet){ Integer value=tm.get(key); sb.append(key).append("(").append(value).append(")"); } String result = sb.toString(); System.out.println(result); } }