黑马程序员技术交流社区
标题:
如何统计一个字符串中有多少种字符
[打印本页]
作者:
于振发
时间:
2013-9-26 00:37
标题:
如何统计一个字符串中有多少种字符
本帖最后由 于振发 于 2013-9-27 18:39 编辑
老师讲过这个问题,时间过的太久了,想不起来了,请大家指导一下!
作者:
HM马强
时间:
2013-9-26 00:52
本帖最后由 HM马强 于 2013-9-26 01:04 编辑
String s = "123";
String[] arr = s.split("");
Set set = new HashSet();
for (String str : arr) {
set.add(str);
}
System.out.println(set.size());
复制代码
我也是新手,这样行不行呢?
作者:
晨曦
时间:
2013-9-26 21:52
楼上的差不多对了,可是用错了一个方法,这样得出的结果会大一,主要是s.split("")的第一个字符串是一个空字符串
正确代码如下
import java.util.HashSet;
import java.util.Set;
public class SumChar {
public static void main(String[] args) {
// TODO Auto-generated method stub
String s = "123";
char[] arr = s.toCharArray();
Set set = new HashSet();
for (char str : arr) {
set.add(str);
}
System.out.println(set.size());
}
}
复制代码
作者:
yting_xmei1129
时间:
2013-9-26 22:47
楼主,下面是饿刚刚敲的代码,应该可以满足你的要求--->
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 、、、、、、、、、、、、、、、、、、、、、、
作者:
yting_xmei1129
时间:
2013-9-26 22:48
运行结果--->
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 次
作者:
黄文伯
时间:
2013-9-27 10:50
亲,如问题已解决请将分类的“未解决”改为“已解决”。 以后的问题贴也要及时更改分类哦~
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2