import java.util.HashMap;
import java.util.Map;
public class Test {
public static void main(String[] args) {
String s = "sdfjkaljttqnzkld你好你不好我好";
Map<Character, Integer> m = new HashMap<Character, Integer>();
for (int i = 0; i < s.length(); i++) {
char c = s.charAt(i);
int count = 1;
if (m.containsKey(c)) {
count += m.get(c);
}
m.put(c, count);
}
for (Map.Entry<Character, Integer> e : m.entrySet()) {
System.out.println(e.getKey() + " : " + e.getValue());
}
}
}
C版本
C语言实现统计字符串中每个字符出现的次数 -- 巧妙!
来源: 余泽喜ubuntu的日志
#include <stdio.h>
void func(const char *src)
{
unsigned char all[256] = {0};
int i;
if (src == NULL)
return;
while (*src)
{
//++all[*src];
//++src;
all[*src]++;
src++;
}
for (i = 0; i < 256; i++)
{
if (all[i] != 0)
{
printf("字符%c出现次数: %d\n", i, all[i]);
}
}
}
int
main(void)
{
char ss[100]="aaaabbbbbxxxxxxyxxxa1231
func(ss);
return 0;
}
运行:
字符!出现次数: 2
字符#出现次数: 2
字符$出现次数: 2
字符1出现次数: 2
字符2出现次数: 2
字符3出现次数: 2
字符@出现次数: 3
字符^出现次数: 3
字符a出现次数: 5
字符b出现次数: 5
字符e出现次数: 1
字符n出现次数: 1
字符q出现次数: 1
字符r出现次数: 2
字符t出现次数: 1
字符u出现次数: 2
字符x出现次数: 9
字符y出现次数: 1