Java——集合(输入一串字符串,统计字符串中每个字符出现的次数)

  • 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) : 根据键获取值
        }
    }

}

猜你喜欢

转载自blog.csdn.net/qq_41264055/article/details/81101116