在控制台输入一句英语, 获得每个字母出现的次数,注:每个字符作为key,出现的次数作为value,放入map集合 该怎么写。
import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;
public class Test {
private void input() {
Scanner sc = new Scanner(System.in);
System.out.println("请输入一句英文!");
String str = sc.nextLine();
sc.close();
print(count(str));
}
private Map<Character, Integer> count(String str) {
int count = 0;
Map<Character, Integer> map = new HashMap<Character, Integer>();
for (int i = 0; i < str.length(); i++) {
char ch = str.charAt(i);
for (int j = 0; j < str.length(); j++) {
if (ch == str.charAt(j)) {
count++;
}
}
map.put(ch, count);
count = 0;
}
return map;
}
private void print(Map<Character, Integer> map) {
for (Character key : map.keySet()) {
System.out.println(key + "出现了" + map.get(key) + "次");
}
}
public static void main(String[] args) {
Test test = new Test();
test.input();
}
}
望采纳
private Map count(String str) {
Map map = new HashMap();
for (int i = 0; i < str.length(); i++) {
char ch = str.charAt(i);
Integer count = map.get(ch);
if (count != null) {
count++;
} else {
count = 1;
}
map.put(ch, count);
}
return map;
}
将楼上兄弟的count()方法进行了优化,这样遍历一次就可以了。