利用hashmap:
import java.util.HashMap;
import java.util.Map;
import java.util.Objects;
import java.util.Scanner;
/**
统计字符串里每个字符出现的次数 ”abcaa “ a 3 b 1 c 1
*/
public class StringDemo1 {
public Map<Character,Integer> findCount1(String str){
char[] ch = str.toCharArray();
Map<Character,Integer> map = new HashMap<>();
for (int i = 0; i < ch.length; i++) {
map.put(ch[i],map.getOrDefault(ch[i],0) + 1);
}
return map;
}
public Map<Character,Integer> findCount(String str){
char[] ch = str.toCharArray();
Map<Character,Integer> map = new HashMap<>();
for (char key : ch) {
if(map.containsKey(key)){
map.put(key,map.get(key) + 1);
}else {
map.put(key,1);
}
}
return map;
}
public static void main(String[] args) {
StringDemo1 stringDemo1 = new StringDemo1();
Scanner sc = new Scanner(System.in);
String input = sc.nextLine();
while (Objects.nonNull(input)){
Map<Character,Integer> res = stringDemo1.findCount(input);
for(Map.Entry<Character,Integer> entry : res.entrySet()){
System.out.print(entry.getKey() + "(");
System.out.print(entry.getValue() + ") |");
}
System.out.println();
input = sc.nextLine();
}
}
}
运行: