java实现统计字符串中出现的字符和次数

 思路:

  1. 声明一个map集合key来存储字符,value用来存储出现的次数
  2. 获得一个字符串
  3. 将字符串转化为char数组
  4. 利用ASCII码表的范围,设置map的key为各字符,value统一设置为0
  5. 如果该字符串的值与已设置的key相等,则对应的value值+1
  6. 将出现大于0的字符和次数输出

代码如下

package 集合练习题;

import utils.RandomUtils;

import java.util.HashMap;
import java.util.Map;
import java.util.Set;

//统计一个字符串包含哪些字符和出现的次数
public class StatisticalCharacterNumber {
    public static void main(String[] args) {
        //声明一个map集合key来存储字符,value用来存储出现的次数
        Map<Character,Integer> map=new HashMap<>();
        String s ="sjhdjshdJKKJIHSDJI::;'sd,,q1@@#$.llll";
        //获得一个随机字符串(暂时不包括其他符号,可自行设置)
//        String s= RandomUtils.randomString(26);
        System.out.println(s);
        //将字符串转化为char数组
        char[] chars = s.toCharArray();
        //利用ASCII码表的范围,设置map的key为各字符,value统一设置为0
        for (int i = 0; i <=127 ; i++) {
            map.put((char) i,0);
        }
        for (int i = 0; i <chars.length ; i++) {
            //如果该字符串的值与已设置的key相等,则对应的value值+1
            if (map.containsKey(chars[i])){
                map.put(chars[i],map.get(chars[i])+1);
            }
        }
        Set<Map.Entry<Character, Integer>> entries = map.entrySet();
        //将出现大于0的字符和次数输出
        entries.forEach(e-> {if(e.getValue()!=0)
            System.out.println(e.getKey()+"出现的次数:"+e.getValue());
        });
    }

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 可以使用HashMap来统计字符串字符出现次数,具体实现如下: ```java public static void countChars(String str) { HashMap<Character, Integer> map = new HashMap<>(); for (int i = ; i < str.length(); i++) { char c = str.charAt(i); if (map.containsKey(c)) { map.put(c, map.get(c) + 1); } else { map.put(c, 1); } } for (Map.Entry<Character, Integer> entry : map.entrySet()) { System.out.println(entry.getKey() + "出现了" + entry.getValue() + "次"); } } ``` 调用该方法,传入一个字符串即可统计出其每个字符出现次数。 ### 回答2: 要统计字符串字符出现次数,可以使用HashMap来解决。首先,我们需要遍历字符串的每个字符,并根据每个字符来更新HashMap的键值对。如果字符已经存在于HashMap的键,我们将该字符对应的值加1;如果字符不存在于HashMap的键,我们将该字符作为新的键,并将其对应的值初始化为1。 以下是Java语言实现的代码示例: ```java import java.util.HashMap; public class CharacterCount { public static void main(String[] args) { String str = "hello world"; HashMap<Character, Integer> charCountMap = new HashMap<>(); // 遍历字符串的每个字符 for (int i = 0; i < str.length(); i++) { char ch = str.charAt(i); // 更新HashMap的键值对 if (charCountMap.containsKey(ch)) { charCountMap.put(ch, charCountMap.get(ch) + 1); } else { charCountMap.put(ch, 1); } } // 输出统计结果 for (HashMap.Entry<Character, Integer> entry : charCountMap.entrySet()) { System.out.println(entry.getKey() + "出现了" + entry.getValue() + "次"); } } } ``` 以上代码会输出如下结果: ``` h出现了1次 e出现了1次 l出现了3次 o出现了2次 出现了1次 w出现了1次 r出现了1次 d出现了1次 ``` 通过HashMap的键值对来统计字符串字符出现次数,可以方便地进行统计和输出结果。不仅适用于给定字符串统计,也可以轻松应用于大型字符串字符统计。 ### 回答3: Java语言可以通过遍历字符串的每个字符,然后使用一个HashMap来保存字符和其出现次数的对应关系来实现统计字符串字符出现次数的功能。 具体的实现步骤如下: 1. 声明一个HashMap对象,用于保存字符和其出现次数的对应关系。 2. 遍历字符串的每个字符,如果该字符已经存在于HashMap,则将其对应的计数器加1,否则将该字符添加到HashMap,并将其计数器设为1。 3. 遍历完整个字符串后,HashMap存储了所有字符及其出现次数的信息。 4. 可以通过遍历HashMap,打印每个字符及其对应的出现次数。 示例代码如下: ```java import java.util.HashMap; public class CharacterCount { public static void main(String[] args) { String str = "hello world"; // 创建HashMap对象 HashMap<Character, Integer> charCountMap = new HashMap<>(); // 遍历字符串的每个字符 for (int i = 0; i < str.length(); i++) { char c = str.charAt(i); // 如果字符存在于HashMap,则将计数器加1 if (charCountMap.containsKey(c)) { int count = charCountMap.get(c); charCountMap.put(c, count + 1); } // 否则将字符添加到HashMap,并将计数器设为1 else { charCountMap.put(c, 1); } } // 遍历HashMap,打印每个字符及其出现次数 for (char c : charCountMap.keySet()) { int count = charCountMap.get(c); System.out.println("'" + c + "'出现了" + count + "次"); } } } ``` 以上代码在给定字符串"hello world"的情况下,输出结果为: ``` 'a'出现了1次 'd'出现了1次 'e'出现了1次 'h'出现了1次 'l'出现了3次 'o'出现了2次 'r'出现了1次 'w'出现了1次 ``` 这样就实现统计字符串字符出现次数的功能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值