长字符串中统计每个字母出现次数
给定常字符串:abcsdfdjfkdscaaacccbbbkssss
结果输出:a(4)b(4)c(5)s(6)d(3)f(2)j(1)k(2)
代码
import java.util.LinkedHashMap;
import java.util.Map;
import java.util.Scanner;
import java.util.Set;
public class MyTest04 {
public static void main(String[] args) {
// Scanner sc = new Scanner(System.in);
// String s = sc.nextLine();
String str="abcsdfdjfkdscaaacccbbbkssss";
LinkedHashMap<Character, Integer> map = new LinkedHashMap<>();
// 字母统计算法
for (int i = 0; i < str.length(); i++) {
char ch=str.charAt(i);
if (!map.containsKey(ch)){
map.put(ch,1);
}else{
Integer num = map.get(ch);
num++;
map.put(ch,num);
}
}
// 拼串
StringBuffer sb = new StringBuffer();
Set<Map.Entry<Character, Integer>> entries = map.entrySet();
for (Map.Entry<Character, Integer> entry:entries){
sb.append(entry.getKey()).append("("+entry.getValue()+")");
}
System.out.println(sb.toString());
}
}