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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© panpanpan138 中级黑马   /  2015-10-22 20:09  /  558 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

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

  5. /*
  6. * 需求:取出一个字符串中字母出现的次数。
  7. * 如:字符串:"abcdekka27qoq" ,输出格式为: a(2)b(1)k(2)...
  8. */
  9. public class Test1 {
  10.         public static void main(String[] args) {
  11.                 //创建一个Sanner对象用于接收键盘录入的数据
  12.                 Scanner sc = new Scanner(System.in);
  13.                 System.out.println("请输入一个字符串:");
  14.                 String s = sc.nextLine();
  15.                 //创建一个TreeMap的对象,用于存储字母和字母出现的次数
  16.                 TreeMap<Character,Integer> map = new TreeMap<>();
  17.                 //将字符串转换为字符数组
  18.                 char[] chs = s.toCharArray();
  19.                 //增强for循环遍历字符数组
  20.                 for (char c : chs) {
  21.                         //判断遍历到的字符是不是字母
  22.                         if((c>='A'&&c<='Z')||(c>='a'&&c<='z')){
  23.                                 //如果是字母,在map中寻找相应的字母,并返回对应的值
  24.                                 Integer num = map.get(c);
  25.                                 //判断该值是否为空,若为空,就将该字符作为键,值为1存入map
  26.                                 if(num==null){
  27.                                         map.put(c, 1);
  28.                                 //若不为空,则说明map中已经有该字符,此时只需要将该字符的对应值+1并重新存入map中替换原来的键值对即可
  29.                                 }else{
  30.                                         num++;
  31.                                         map.put(c,num);
  32.                                 }
  33.                         }
  34.                 }
  35.                 //得到一个TreeMap键值对对象的集合
  36.                 Set<Map.Entry<Character,Integer>> set = map.entrySet();
  37.                 //增强for遍历这个集合,或得每一个键值对,并且输出
  38.                 for (Map.Entry<Character, Integer> entry : set) {
  39.                         System.out.println(entry.getKey()+"("+entry.getValue()+")");
  40.                 }
  41.         }
  42. }
复制代码


3 个回复

倒序浏览
之前还能看得懂java 现在就看不懂啦   
回复 使用道具 举报
没有这能力呀
回复 使用道具 举报
没有这能力呀
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马