【JAVA】给定任意字符串,求出字符串中有多少种字符,以及每个字符的个数?

来源:百度知道 编辑:UC知道 时间:2024/05/22 15:16:31
例如:

yekmaakkccekymbvb

共有字母8个
字母v:共1个
字母e:共2个
字母b:共2个
字母c:共2个
字母a:共2个
字母m:共2个
字母k:共4个
字母y:共2个

提示:用到类 HashMap Set

麻烦高手帮我写个代码,感激不尽。

public class Test {
public static void main(String[] args) {
String string = "yekmaakkccekymbvb";
Map<Character, Integer> map = countLetters(string);
System.out.println("total: " + map.size());
for (Map.Entry<Character, Integer> entry : map.entrySet()) {
System.out.printf("letter %c: %d\n", entry.getKey(),
entry.getValue());
}

}

static Map<Character, Integer> countLetters(String s) {
if (s == null) {
return null;
}
Map<Character, Integer> map = new HashMap<Character, Integer>();
char c;
Integer oldValue;
int newValue;
for (int i = 0; i < s.length(); ++i) {
c = s.charAt(i);
oldValue = map.get(c);
newValue = (oldValue == null) ? 1 : oldValue.intValue() + 1;
map.put(c, newValue);
}
return map;
}

import java.util.*;