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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 于振发 中级黑马   /  2013-9-26 00:37  /  1232 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 于振发 于 2013-9-27 18:39 编辑

                  老师讲过这个问题,时间过的太久了,想不起来了,请大家指导一下!

评分

参与人数 1技术分 +1 收起 理由
黄文伯 + 1

查看全部评分

5 个回复

倒序浏览
本帖最后由 HM马强 于 2013-9-26 01:04 编辑
  1. String s = "123";
  2.                 String[] arr = s.split("");
  3.                 Set set = new HashSet();
  4.                 for (String str : arr) {
  5.                         set.add(str);                       
  6.                 }
  7.                 System.out.println(set.size());
复制代码
我也是新手,这样行不行呢?
回复 使用道具 举报
楼上的差不多对了,可是用错了一个方法,这样得出的结果会大一,主要是s.split("")的第一个字符串是一个空字符串
正确代码如下
  1. import java.util.HashSet;
  2. import java.util.Set;


  3. public class SumChar {

  4.         public static void main(String[] args) {
  5.                 // TODO Auto-generated method stub
  6.        
  7.                 String s = "123";
  8.         char[] arr = s.toCharArray();
  9.         Set set = new HashSet();
  10.         for (char str : arr) {
  11.                 set.add(str);                        
  12.         }
  13.         System.out.println(set.size());
  14.         }
  15. }
复制代码

评分

参与人数 1技术分 +1 收起 理由
黄文伯 + 1 赞一个!

查看全部评分

回复 使用道具 举报
楼主,下面是饿刚刚敲的代码,应该可以满足你的要求--->

package com.itheima;

import java.util.HashMap;
import java.util.Map;

public class Test7 {

        public static void main(String[] args) throws Exception {
                Count("ruguoninengkanqingchuzhejigege,shuomingniyanjingyouwenti,yaoqukanyisheng!!!");
        }

        public static void Count(String str) throws Exception {
                Map<Character,Integer> map = new HashMap<Character, Integer>();
                char[] cbuf = str.toCharArray();

                for (int i = 0; i < cbuf.length; i++) {
                        if (map.containsKey(cbuf[i])) {
                                map.put(cbuf[i], map.get(cbuf[i]) + 1);
                                continue;
                        }

                        map.put(cbuf[i], 1);
                }
                for (Map.Entry<Character, Integer> me : map.entrySet()) {
                        System.out.println(me.getKey() + " : " + me.getValue() + " 次");
                }
        }
}

希望可以帮到楼主、、、

The you smile until forever 、、、、、、、、、、、、、、、、、、、、、、

评分

参与人数 1黑马币 +9 收起 理由
黄文伯 + 9 赞一个!

查看全部评分

回复 使用道具 举报
运行结果--->
g : 8 次
! : 3 次
e : 6 次
c : 1 次
a : 4 次
n : 12 次
o : 4 次
m : 1 次
j : 2 次
k : 2 次
, : 2 次
h : 4 次
i : 8 次
w : 1 次
u : 6 次
t : 1 次
s : 2 次
r : 1 次
q : 2 次
z : 1 次
y : 4 次
回复 使用道具 举报
亲,如问题已解决请将分类的“未解决”改为“已解决”。 以后的问题贴也要及时更改分类哦~
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马