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);}
}