欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Java进阶基础—HashMap集合的统计字符串并遍历

程序员文章站 2022-04-30 22:09:08
...

/*

  • 要求:键盘输入一串字符串,eg:aadddfjj
  • 统计字符串中每个字符出现的次数;
  • 格式:a(2)d(3)f(1)j(2)
  • 思路:
  • 第一步:Scanner对象创建,获取键盘录入的字符串,用str.split("")分割,
  • 变成字符串数组String[]
  • 第二步:创建HashMap集合,用键存储字符,用值存储个数。
  • 第三步:遍历字符串,用contianKey(charater)判断是否包含指定的键值,如果不包含,把对应的值
  • 复制为1,如果返回true,那就把对应的value值+1,重新覆盖存储。
  • 第四步:按要求遍历HasMap值即可。
  • */
    上代码…
import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;
import java.util.Set;
public class HashMapAddCharacter {
    public static void main(String[] args) {
        //第一步:Scanner对象创建,获取键盘录入的字符串,用str.split("")分割,
        //* 变成字符串数组String[]
        Scanner sc  = new Scanner(System.in);
        String intPutString = sc.nextLine();
        String[] intPutArrStr = intPutString.split("");

        //第二步:创建HashMap集合,用键存储字符,用值存储个数。
        HashMap<String,Integer> hashMap = new HashMap<String, Integer>();

        //第三步:遍历字符串,用contianKey(charater)判断是否包含指定的键值,如果不包含,把对应的值
        // 复制为1,如果返回true,那就把对应的value值+1,重新覆盖存储。
        for(String s:intPutArrStr){
            if(hashMap.containsKey(s)){
                int i =  hashMap.get(s)+1;
                hashMap.put(s,i);
            } else{
                hashMap.put(s,1);
            }
        }
        //第四步:按要求遍历HasMap值即可。
        Set<Map.Entry<String,Integer>> set = hashMap.entrySet();
        for(Map.Entry<String,Integer> s : set){
            System.out.print(s.getKey()+"("+s.getValue()+")");
        }
    }
}

Java进阶基础—HashMap集合的统计字符串并遍历