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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

  1. package intcast_0430;

  2. import java.util.Map;
  3. import java.util.Set;
  4. import java.util.TreeMap;

  5. /*
  6. * 7、 取出一个字符串中字母出现的次数。如:字符串:"abcdekka27qoq" ,输出格式为:a(2)b(1)k(2)...
  7. * 思路:        1)定义一个字符串
  8. *                 2)将字符串转换成字符数组,定义Map集合,统计变量
  9. *                 3)遍历字符串数组,没有相同的就存入,有相同的就+1
  10. *                 4)遍历集合,调格式
  11. */
  12. public class ExamTest7 {
  13.         public static void main(String[] args) {
  14.                 String str = "abcdekka27qoq";
  15.                 //转成字符数组
  16.                 char[] chs = str.toCharArray();
  17.                 //定义Map集合
  18.                 Map<Character, Integer> map = new TreeMap<Character, Integer>();
  19.                 Set<Character> mapchs = map.keySet();
  20.                 for(int i=0; i<chs.length; i++){
  21.                         if(mapchs.contains(chs[i])){
  22.                                 int temp = map.get(chs[i])+1;
  23.                                 map.put(chs[i], temp);
  24.                         }else{
  25.                                 map.put(chs[i],1);
  26.                         }
  27.                 }
  28.                 for(Character string: mapchs){
  29.                        
  30.                         System.out.print(string+"("+map.get(string)+")");
  31.                 }
  32.         }
  33. }
复制代码

前一阵学习Map学习了键是唯一的,值是不唯一的,在做相同元素统计的时候Map十分好用!比如说题目上这个,或者说统计相同自定义对象(不过自定义对象要重写方法)个数。大家来看代码,自己写的可能不大好~请尽力吐槽吧!

1 个回复

倒序浏览
谢谢,学习了
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马