黑马程序员技术交流社区

标题: 关于集合的一道编程题分享 [打印本页]

作者: panpanpan138    时间: 2015-10-22 20:09
标题: 关于集合的一道编程题分享
  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. }
复制代码



作者: xu不是许    时间: 2015-10-22 20:27
之前还能看得懂java 现在就看不懂啦   
作者: 叶发伟    时间: 2015-10-22 22:10
没有这能力呀
作者: 叶发伟    时间: 2015-10-22 22:11
没有这能力呀




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