使用Map集合统计一个字符串中每个字符出现的个数

一. 题目描述
使用Map集合统计一个字符串中每个字符出现的个数,将结果使用HashMap.entrySet()方法存入set集合,并使用迭代器和foreach方法分别遍历set集合。
二. 流程设计
1.输入字符串
2.转化字符数组,遍历字符数组
3.使用map集合中的方法判断获取到的字符是否在Map对象中,若不存在,value赋值为1,存在,value++
4.将map集合遍历输出结果
三. 代码实现

import java.util.*;
public class Main {
    /**
     * 1.输入字符串
     * 2.转化字符数组,遍历字符数组
     * 3.使用map集合中的方法判断获取到的字符是否在Map对象中,若不存在,value赋值为1,存在,value++
     * 4.将map集合遍历输出结果
     */
    public static <HashMapMap> void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        String str1 = scanner.next();
        char[] chars = str1.toCharArray();

        HashMap<Character, Integer> hashMap = new HashMap<>();

        for (int i = 0; i < chars.length; i++) {
            if (hashMap.containsKey(chars[i])) { //存在key,修改value的值
                Integer value = hashMap.get(chars[i]);
                value++;
                hashMap.put(chars[i], value);
            } else {
                hashMap.put(chars[i], 1); // 不存在key,添加进去
            }

        }

        //遍历hashMap集合
        //1.使用entry键值对方式
        Set<Map.Entry<Character, Integer>> set = hashMap.entrySet();
        //2.使用迭代器遍历Set集合
        Iterator<Map.Entry<Character, Integer>> it = set.iterator();
        while (it.hasNext()) {
            Map.Entry<Character, Integer> next = it.next();
            System.out.println(next.getKey() + "的个数为" + next.getValue());
        }

        //3.使用增强for循环遍历set集合
        System.out.println("使用foreach循环遍历");
        for (Map.Entry<Character, Integer> entry : set) {
            System.out.println(entry.getKey() + "的个数为" + entry.getValue());

        }

    }
}

四. 运行截图
在这里插入图片描述

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 您可以使用JavaHashMap统计一个String字符串每个字符出现个数。可以遍历这个String字符串,判断每一个字符是否存在于HashMap,如果不存在,则将其添加到HashMap,并将其出现的次数设置为1;如果存在,则将其出现的次数加1。最后,可以通过遍历HashMap的所有元素,获取到每个字符出现的次数。 ### 回答2: 要统计一个String字符串每个字符出现个数,可以使用HashMap来实现。 首先,将String字符串转化为字符数组,便于遍历每个字符。然后,创建一个HashMap对象,用于存储每个字符及其出现的次数。 接下来,遍历字符数组。对于每个字符,先判断该字符是否已经存在于HashMap,如果不存在,则将该字符作为键,出现次数初始化为1并放入HashMap;如果已存在,则将该字符对应的值加1。 最后,遍历完字符数组后,HashMap存储了每个字符及其出现的次数。可以使用迭代器遍历HashMap,输出每个字符及其出现的次数。 以下是示例代码: ```java import java.util.HashMap; import java.util.Map; public class CountCharacters { public static void main(String[] args) { String str = "aabbbccc"; Map<Character, Integer> charCountMap = new HashMap<>(); char[] charArray = str.toCharArray(); for (char c : charArray) { if (charCountMap.containsKey(c)) { int count = charCountMap.get(c); charCountMap.put(c, count + 1); } else { charCountMap.put(c, 1); } } System.out.println("字符出现个数:"); for (Map.Entry<Character, Integer> entry : charCountMap.entrySet()) { System.out.println(entry.getKey() + ": " + entry.getValue()); } } } ``` 运行以上代码,输出结果为: ``` 字符出现个数: a: 2 b: 3 c: 3 ``` 这样,就统计出了字符串每个字符出现个数。 ### 回答3: 要统计一个String字符串每个字符出现个数,可以按照以下步骤进行: 1. 创建一个HashMap<Character, Integer>来存储每个字符和其出现的次数。 2. 遍历字符串每个字符。 3. 检查HashMap是否已经存在该字符,如果存在,则将其对应的值加1;如果不存在,则将该字符作为键,值初始化为1,添加到HashMap。 4. 遍历完所有字符后,HashMap存储的字符和其出现次数就是所需的结果。 下面是一个Java代码示例: ``` public static HashMap<Character, Integer> countCharacters(String str){ HashMap<Character, Integer> charCountMap = new HashMap<>(); // 遍历字符串每个字符 for(int i = 0; i < str.length(); i++){ char ch = str.charAt(i); // 判断HashMap是否已经存在该字符 if(charCountMap.containsKey(ch)){ // 如果存在,则将其对应的值加1 charCountMap.put(ch, charCountMap.get(ch) + 1); } else { // 如果不存在,则将该字符作为键,值初始化为1,添加到HashMap charCountMap.put(ch, 1); } } return charCountMap; } // 调用示例 public static void main(String[] args){ String str = "hello world"; HashMap<Character, Integer> result = countCharacters(str); // 打印每个字符和其出现的次数 for(Character ch : result.keySet()){ System.out.println(ch + ": " + result.get(ch)); } } ``` 运行以上代码会输出如下结果: ``` h: 1 e: 1 l: 3 o: 2 : 1 w: 1 r: 1 d: 1 ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值