1.问题描述
需求:计算一个字符串中每个字符出现次数。
2.解题思路
- 获取一个字符串对象;
- 创建一个Map集合,键代表字符,值代表次数;
- 遍历字符串得到每个字符;
- 判断Map中是否有该键;
- 如果没有,第一次出现,存储次数为1;如果有,则说明已经出现过,获取到对应的值进行++,再次存储;
- 打印最终结果。
package com.fanxindong.map;import java.util.HashMap;
import java.util.Scanner;/*
需求:计算一个字符串中每个字符出现次数。分析:
1. 获取一个字符串对象
2. 创建一个Map集合,键代表字符,值代表次数。
3. 遍历字符串得到每个字符。
4. 判断Map中是否有该键。
5. 如果没有,第一次出现,存储次数为1;如果有,则说明已经出现过,获取到对应的值进行++,再次存储。
6. 打印最终结果*/public class MapTest {public static void main(String[] args) {//友情提示System.out.println("请录入一个字符串:");String line = new Scanner(System.in).nextLine();// 定义 每个字符出现次数的方法findChar(line);}private static void findChar(String line) {//1:创建一个集合 存储 字符 以及其出现的次数HashMap<Character, Integer> map = new HashMap<Character, Integer>();//2:遍历字符串for (int i = 0; i < line.length(); i++) {char c = line.charAt(i);//判断 该字符 是否在键集中if (!map.containsKey(c)) {//说明这个字符没有出现过//那就是第一次map.put(c, 1);} else {//先获取之前的次数Integer count = map.get(c);//count++;//再次存入 更新map.put(c, ++count);}}System.out.println(map);}
}