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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 占琳 中级黑马   /  2012-10-20 20:27  /  1183 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 w129160 于 2012-10-21 11:24 编辑

比如输入一连串字符串 然后打印出每个字母出现的次数 比如dffag
打印出d:1 f:2 a:1 g:1

评分

参与人数 1技术分 +1 收起 理由
韩军博 + 1 很给力!

查看全部评分

4 个回复

倒序浏览
  1. import java.util.*;


  2. public class MapTest2 {
  3.         public static void main(String[] arg){
  4.                 String str = "aaaasdsdszA";
  5.                 System.out.println(charCount(str));
  6.         }
  7.        
  8.         public static String charCount(String str){
  9.                 char[] chs = str.toCharArray();
  10.                 TreeMap<Character,Integer> tm = new TreeMap<Character,Integer>();
  11.                 int count = 0;
  12.                 for(int i = 0;i<chs.length;i++){
  13.                         if( chs[i]>='a'&&chs[i]<='z'|| chs[i]>='A'&&chs[i]<='Z')
  14.                                 if(tm.containsKey(chs[i])){
  15.                                         count = tm.get(chs[i]);
  16.                                         tm.put(chs[i], count+1);
  17.                                 }
  18.                                 else tm.put(chs[i],1);
  19.                 }
  20.                
  21.                 StringBuilder sb = new StringBuilder();
  22.                 Set<Map.Entry<Character,Integer>> entrySet = tm.entrySet();
  23.                 Iterator<Map.Entry<Character,Integer>>  it = entrySet.iterator();
  24.                 while(it.hasNext()){
  25.                         Map.Entry<Character,Integer> me = it.next();
  26.                         Character ch = me.getKey();
  27.                         Integer value = me.getValue();
  28.                         sb.append(ch+":"+value+"  ");
  29.                 }
  30.                 return sb.toString();
  31.         }
  32. }
复制代码
回复 使用道具 举报
将字符串str.toCharArray()转换为字符数组,创建一个Map集合,遍历字符数组。
如果当前字符在Map集合中不存在,就将这个字符作为Map集合的键添加到集合中,并设置值为1;
如果当前字符在Map集合中存在,就将其值加1。
遍历并输出Map集合中的键值。
回复 使用道具 举报
  1. package com.itheima;

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

  5. /*
  6. * 取出一个字符串中字母出现的次数。如:字符串:"abcdekka27qoq" ,输出格式为:a(2)b(1)k(2)...
  7. */
  8. public class Test3 {
  9.         public static void main(String[] args) {
  10.                 //定义变量
  11.                 String str = "abcdekka27qoq";
  12.                 //定义hashMap
  13.                 HashMap<Character, Integer> lqhm = new HashMap<Character, Integer>();
  14.                 //遍历string字符串
  15.                 for (int i = 0; i < str.length(); i++) {
  16.                         //取出来单个的字母
  17.                         char c = str.charAt(i);
  18.                         //查看HashMap里面有没有现在所要找的值,如果没有的话,就给它附初始值为1,如果有,就+1
  19.                         Integer integer = lqhm.get(c);
  20.                         if (integer == null)
  21.                                 integer = 1;
  22.                         else
  23.                                 integer++;
  24.                         lqhm.put(c, integer);
  25.                 }
  26.                 //变量数组,另外加上括号~
  27.                 Set<Map.Entry<Character, Integer>> entrys = lqhm.entrySet();
  28.                 for (Map.Entry<Character, Integer> entry : entrys) {
  29.                         System.out.print(entry.getKey() + "(" + entry.getValue() + ")");
  30.                 }
  31.         }
  32. }
复制代码
昨天刚做的入学测试题,你参考一下。

评分

参与人数 1技术分 +1 收起 理由
韩军博 + 1

查看全部评分

回复 使用道具 举报
本帖最后由 严学韦 于 2012-10-20 21:32 编辑

  1. <P>package LianXi;
  2. /*
  3. * 需求:打印一个字符串中每个字符出现的次数
  4. * */
  5. import java.util.*;//导入JAVA工具包

  6. public class AppearTimeDemo {  
  7.     public static void main(String args[]){
  8.         String s = "HeiMa ChengXuYuan"; //测试字符串
  9.         Map<Character, Integer> result = getCharMaps(s);
  10.         System.out.println(result);//打印出字符串中各字符出现的次数!   
  11.    }
  12.     public static Map<Character, Integer> getCharMaps(String s) {
  13.         Map<Character, Integer> map = new HashMap<Character, Integer>();//定义一个Map集合
  14.         for(int i = 0; i < s.length(); i++) {
  15.             Character c = s.charAt(i);
  16.             Integer count = map.get(c);
  17.             map.put(c, count == null ? 1 : count + 1);
  18.         }
  19.         return map;   
  20.     }
  21. }</P>
复制代码
这个问题我记得毕老师专门讲过的,可以再细看视频的

结果.jpg (5.06 KB, 下载次数: 11)

结果.jpg
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马