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

© 孤守星空 中级黑马   /  2014-9-9 15:37  /  6684 人查看  /  41 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 孤守星空 于 2014-9-9 15:39 编辑

唉,响当当的第二次面试,还是这么惨。
不得不说,面试的时候真的急死我了,关键还是没想法,各种拙计。唉,做过的题目都想不出来,真是罪过。现在重新写一遍,给自己默哀

  1. import java.util.Map;
  2. import java.util.Set;
  3. import java.util.TreeMap;</P>
  4. /*取出一个字符串中字母出现的次数。
  5. 如:字符串:"abcdekka27qoq" ,
  6. 输出格式为:a(2)b(1)k(2)...*/
  7. /*
  8. 思路:
  9. 把这个字符串存入map集合中,因为map存的是键值对的形式,与要求输出的格式类似
  10. 用sb打印出类似效果就行
  11. */
  12. public class Test {
  13. public static void main(String[] args) {
  14.   String str = "abcdekka27qoq";
  15.   printStyle(str);
  16.    }
  17. public static void printStyle(String str){
  18.   Map<Character,Integer> tm = new TreeMap<Character,Integer>();
  19.   StringBuilder sb = new StringBuilder();
  20.   for(int i = 0; i<str.length();i++){
  21.    Character key = str.charAt(i);
  22.    Integer value = tm.get(str.charAt(i));
  23.    if(key<='z'&&key>='a')   
  24.     if(value==null){
  25.      tm.put(key,1);
  26.     }
  27.     else
  28.      tm.put(key,++value);
  29.   }
  30.   
  31.   Set<Character> keyset = tm.keySet();
  32.   for(Character key : keyset){
  33.    Integer value2 = tm.get(key);
  34.    sb.append(key+"("+value2+")");
  35.   }
  36.   System.out.println(sb.toString());
  37. }

复制代码
= = 好低的总分,万般无奈,看看能不能上下一期吧

评分

参与人数 1黑马币 +10 收起 理由
格子、 + 10 挺你,加油

查看全部评分

41 个回复

正序浏览
希望祝我好运吧
回复 使用道具 举报
加油吧,找到最适合自己的学习方法和效率!
回复 使用道具 举报
一个容器倒到另一个容易 然后判断一次往上加 这个思路最最清晰的了 按思路写下来就是了 我觉得可能是代码敲得太少的问题
回复 使用道具 举报
mudao 中级黑马 2014-10-7 23:29:15
38#
楼主写得代码,没用一些高大上的东西写出来。用个类封装一下函数比较好
回复 使用道具 举报

楼主多少分啊,偷偷告诉我呗
回复 使用道具 举报
daoqin 发表于 2014-9-29 20:36
看看前面的都是千篇一律的集合,map,我觉得你们把这个题目想复杂了。既然只要字母,那你统计字母数量就行 ...

数组、集合都是容器,用哪个不是用,而且Map集合也挺方便的么
回复 使用道具 举报

哈哈 是啊 努力吧 都会的
回复 使用道具 举报
楼主继续加油!
回复 使用道具 举报
Eagle 高级黑马 2014-9-29 21:45:25
33#
孤守星空 发表于 2014-9-29 21:26
我有百分之九十的运气

实力呢》????哈哈
回复 使用道具 举报

= = 毫无经验之谈
回复 使用道具 举报
Eagle 发表于 2014-9-29 20:52
通过,需要运气加实力,哈哈
if(运气 > 50)
{

{:3_67:}   我有百分之九十的运气
回复 使用道具 举报
daoqin 发表于 2014-9-29 20:36
看看前面的都是千篇一律的集合,map,我觉得你们把这个题目想复杂了。既然只要字母,那你统计字母数量就行 ...

{:3_63:} 怎么这么聪明,又有高人来了
回复 使用道具 举报

:victory:正在加酱油
回复 使用道具 举报
小城。 发表于 2014-9-29 18:24
看了楼主我也有点凌乱了

我是大渣渣,你们会很easy的
回复 使用道具 举报

:lol大神太多了
回复 使用道具 举报

上课了一段时间了:victory:
回复 使用道具 举报
学习经验。。。
回复 使用道具 举报
Eagle 高级黑马 2014-9-29 20:52:03
24#
通过,需要运气加实力,哈哈
if(运气 > 50)
{
     if(实力 > 50)
     {
           System.out.pringln("成功");
     }
    else
        System.out.pringln("失败");
}
else
    System.out.pringln("失败");
回复 使用道具 举报
看看前面的都是千篇一律的集合,map,我觉得你们把这个题目想复杂了。既然只要字母,那你统计字母数量就行了。
  1. String str = "abcdekka27qoq";
  2.                 char[] buf = str.toCharArray();
  3.                  int[] num = new int[125];
  4.                 for (int i = 0; i < buf.length; i++) {
  5.                              num[buf[i]]++;
  6.                 }
  7.                 for (int i = 0; i < num.length; i++) {
  8.                         if((i>=65 && i<=90) || (i>=97&& i<=122)){
  9.                                 if(num[i]>0){
  10.                                         System.out.print((char)i+"("+num[i]+")");
  11.                                 }
  12.                         }
  13.                 }
复制代码



回复 使用道具 举报
123下一页
您需要登录后才可以回帖 登录 | 加入黑马