Map集合计算字符串中字符出现的次数

练习:

计算一个字符串中每个字符出现次数

分析:
1.使用Scanner获取用户输入的字符串
2.创建Map集合,key是字符串中的字符,value是字符的个数
3.遍历字符串,获取每一个字符
4.使用获取到的字符,去Map集合判断key是否存在

  • key存在:
  • 通过字符(key),获取value(字符个数)
  • value++
  • put(key,value)把新的value存储到Map集合中
  • key不存在:
  • put(key,1)

5.遍历Map集合,输出结果

代码实现

package demo03;

import java.util.HashMap;
import java.util.Scanner;

/*
    练习:
        计算一个字符串中每个字符出现次数

    分析:
        1.使用Scanner获取用户输入的字符串
        2.创建Map集合,key是字符串中的字符,value是字符的个数
        3.遍历字符串,获取每一个字符
        4.使用获取到的字符,去Map集合判断key是否存在
            key存在:
                通过字符(key),获取value(字符个数)
                value++
                put(key,value)把新的value存储到Map集合中
            key不存在:
                put(key,1)
        5.遍历Map集合,输出结果
 */
public class Demo03MapTest {
    public static void main(String[] args) {
        //1.使用Scanner获取用户输入的字符串
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入一个字符串:");
        String str = sc.next();
        //2.创建Map集合,key是字符串中的字符,value是字符的个数
        HashMap<Character, Integer> map = new HashMap<>();
        //3.遍历字符串,获取每一个字符
        for (char c : str.toCharArray()) {
            //4.使用获取到的字符,去Map集合判断key是否存在
            if (map.containsKey(c)) {
                //key存在
                Integer value = map.get(c);
                value++;
                map.put(c, value);
            } else {
                //key不存在
                map.put(c, 1);
            }
        }
        //5.遍历Map集合,输出结果
        for (Character key : map.keySet()) {
            Integer value = map.get(key);
            System.out.println(key + "=" + value);
        }
    }
}

原文地址:https://www.cnblogs.com/wurengen/p/11247441.html

时间: 2024-10-29 19:07:17

Map集合计算字符串中字符出现的次数的相关文章

技巧之C#统计字符串中字符出现的次数(转)

方法1.自定义类 class CharNum { private char c; private int num; public char C { get { return c; } } public int Num { get { return num; } set { num = value; } } public CharNum(char ch) { this.c = ch; this.num = 1; } } static void Main(string[] args) { /* */

java怎么实现统计一个字符串中字符出现的次数

问题:假设字符串仅仅保护a-z 的字母,java怎么实现统计一个字符串中字符出现的次数?而且,如果压缩后的字符数不小于原始字符数,则返回. 处理逻辑:首先拆分字符串,以拆分出的字符为key,以字符出现次数为value,存入Map中. 源码如下: 1 import java.util.HashMap; 2 import java.util.Iterator; 3 import java.util.Map; 4 5 public class TestCompress { 6 7 public sta

计算字符串中子串出现的次数。

/* 计算字符串中子串出现的次数. 算法:字符串最长匹配原则,以下是图解: abcabcabc abc 循环遍历母串前lenT-lenP: 循环遍历字串,用j指向子串,用k记录每一趟母串开始的位置,若p[j]==t[k]则k.j均后移 若j==子串长度lenP,则找到一个子串,次数++. */ #include<stdio.h> #include<math.h> #include<malloc.h> #include<string.h> main() { c

记录字符串中字符出现的次数

import java.util.HashMap;import java.util.Iterator;import java.util.Map;import java.util.Set; public class Test1 { public static void main(String[] args) { // 获取一个字符串中重复字母的个数,并依次打印出来 String string = "ababcde"; Map<Character ,Integer> map =

任意输入一串字符串,求该字符串中字符的出现次数并打印出来,如输入“bcaba”输出:b 2 c 1 a 2

前言:其实我还是有点不懂,有点郁闷了,算了直接把代码放上去把. 方法一: Scanner input=new Scanner(System.in); System.out.println("请输入一个字符"); String str=input.next(); char[] strChar=str.toCharArray(); //声明集合,把之存在集合中 Map<Character,Integer> map=new HashMap<>(); for(int i

计算字符串每个字符出现的次数

package test001; import java.util.Collection; import java.util.Collections; import java.util.HashMap; import java.util.Map; import java.util.Set; public class EveryStrCount { public static void main(String[] args) { String str = "程序员好吗>序员好吗>程序序

python技巧 计算字符串中字母出现的次数并取出最大

有一个字符串 "aaddfdfdercfghfyttefsfsfewretr123trefg5624sdfcgvfdgte6435234532",现在需要取出里面出现次数最多的字符 第一种方法-装饰器 class get_max_count_string:    def __init__(self,func):        self.func=func        self.count={}    def __call__(self, args):        for s in

计算字符串中子串出现的次数的问题麻烦帮忙看看

uhv7vn拱寐手硬拘耸<http://weibo.com/VFzp/230927982830634764345344> 1rf49l笔畔帽趟范沽<http://weibo.com/uSIp/230927983121854392700928> ijr22y值摆挂鹤啪傅<http://weibo.com/p20180413p/230927983073935346110464?oL> 831b27口偾殖卜呀驼<http://weibo.com/p20180413p/2

统计字符串中字符出现的次数

var a = {}; var str = 'gouod'.split(""); str.forEach(function (v, i) { a[v] = a[v] == undefined ? 1 : a[v] + 1; }) console.info(a)