A:案例演示
- 需求:輸入一串字符串,統計字符串中每個字符出現的次數**
-
- 分析:
- 1,定義一個需要被統計字符的字符串
- 2,將字符串轉化為字符數組,才能拿到每一個字符
- 3,定義雙列集合存儲字符串中字符以及字符出現的次數
- 4,遍歷字符數組獲取每一個字符,并將字符存儲在雙列集合中
- 5,存儲過程中要做判斷,如果集合中不包含這個鍵,就將該字符當作鍵,值為1存儲;如果集合中包含這個鍵,就將值加1存儲
- 6,打印雙列集合獲取字符出現的次數
代碼如下:
import java.util.HashMap;
import java.util.Scanner;public class Test1 {public static void main(String[] args) {Scanner wsq = new Scanner(System.in);System.out.println("請輸入任意一串字符串");//1,定義一個需要被統計字符的字符串,并隨意輸入一串字符串String s = wsq.next();//2,將字符串轉化為字符數組,才能拿到每一個字符char [] arr = s.toCharArray();//3,定義雙列集合存儲字符串中字符以及字符出現的次數HashMap<Character, Integer> yy = new HashMap<>();//4,遍歷字符數組獲取每一個字符,并將字符存儲在雙列集合中 for(char c : arr){//5,存儲過程中要做判斷,如果集合中不包含這個鍵,就將該字符當作鍵,值為1存儲;如果集合中包含這個鍵,就將值加1存儲/*if(!yy.containsKey(c)){ //如果不包含這個鍵yy.put(c, 1);}else{yy.put(c,yy.get(c) + 1);}*/yy.put(c,!yy.containsKey(c) ? 1 :yy.get(c) + 1);}//6,打印雙列集合獲取字符出現的次數for (Character key : yy.keySet()) { //yy.keySet() : 代表所有鍵的集合System.out.println(key + "=" + yy.get(key)); //yy.get(key) : 根據鍵獲取值}}}