import java.util.Iterator;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Scanner;
import java.util.Set;
import java.util.TreeMap;
public class Demo2{
public static void main(String[] vinox){
Scanner sc=new Scanner(System.in);
String str=sc.nextLine();
getCharCount(str); //调用方法
// System.out.println(s);
}
public static void getCharCount(String str){
//将字符串变成字符数组
char[] chs=str.toCharArray();
//定义map集合表
Map<Character,Integer> map=new TreeMap<Character,Integer>();
for(int i=0;i<chs.length;i++){ //遍历
//将数组中的字母作为键去查map表
Integer value=map.get(chs[i]);
//以上代码可用下面的替换:
int count=1;
if(value!=null) {
count=value+1;
}
map.put(chs[i],count);
}
showNum(map) ;
}
public static void showNum(Map<Character,Integer> map){
Set<Entry<Character, Integer>> es = map.entrySet();
Iterator<Entry<Character, Integer>> it = es.iterator();
while (it.hasNext()) {
// 返回的是封装了key和value对象的Map.Entry对象
Entry<Character, Integer> en = it.next();
// 获取Map.Entry对象中封装的key和value对象
Character key = en.getKey();
Integer value = en.getValue();
System.out.println("key=" + key + " value=" + value);
}
//return null;
}
}
运行结果:
![](https://i-blog.csdnimg.cn/blog_migrate/dffcbcdf007a9e60ce4c561ade9f0b9d.png)