统计字符出现次数

如何统计字符串中每个字符出现的次数,这类题遇到过很多次,下面就来谢谢解决思路:

可采用HashMap来解决,HashMap存储的是键值对,即key-value;每个key对应一个value值,利用这个特性,可以将字符看为key,value看做字符出现的次数,这样就可以很好地解决这个问题,下面给出详细代码:

 1 import java.util.HashMap;
 2 import java.util.Iterator;
 3 import java.util.Map;
 4 import java.util.Scanner;
 5
 6 public class Main {
 7
 8     public static void main(String[] args) {
 9
10         Scanner in = new Scanner(System.in);
11
12        while(in.hasNext()){        //多组输入
13
14            String str = in.next();        //输入字符串
15
16           Map x = Main.getMap(str);        //调用函数
17
18           Iterator<Character> iter = x.keySet().iterator();        //定义Iterator对象
19
20           while (iter.hasNext()) {        //对HashMap对象进行迭代
21
22               Character c = iter.next();
23
24              System.out.println(c+"出现的次数是:"+x.get(c));
25
26           }
27
28        }
29     }
30     public static Map<Character,Integer> getMap(String str){    //函数声明
31
32         Map<Character,Integer> map = new HashMap<Character,Integer>();    //构造map对象
33
34         for(int i=0;i<str.length();i++){    //对字符串进行遍历
35
36             Character ch = str.charAt(i);    //获得字符串中的字符
37
38             Integer count = map.get(ch);    //定义字符出现次数这一变量count
39
40             map.put(ch, count == null? 1:count+1);        //调用HashMap中的put方法,如果字符从未出现过,则count=1,如果字符出现过,则count=count+1
41
42         }
43
44         return map;        //返回map
45     }
46
47 }

此种思路可以解决较多类似的问题,可以类比一下。

时间: 2024-10-07 01:27:55

统计字符出现次数的相关文章

统计字符出现次数并排序(hash)

统计字符出现次数并排序 class Hist(dict): def add(self, item, increment=1): """increase num""" self[item] = increment + self.get(item, 0) def counts(self, reverse=False): """return""" aux = [(self[k], k) for

Python统计字符出现次数(Counter包)以及txt文件写入

# -*- coding: utf-8 -*- #spyder (python 3.7) 1. 统计字符(可以在jieba分词之后使用) from collections import Counter from operator import itemgetter # txt_list可以写成函数参数进行导入 txt_list = ['千古','人间','人间','龙','龙','龙','哈哈哈','人才','千古','千古'] c = Counter() for x in txt_list:

(实验6)编写统计字符出现次数函数

自己编写一个字符串链接函数:函数首部定义为void fun(char a[],char b[])其功能是:将形参数组b中的字符顺序连接到形参数组a的字符串后面.注:不能使用字符串的复制和连接函数.例如:a中的字符串为hello,b中的字符串为123,则字符串a中的内容为hello123. main函数中输入两字符串赋给字符数组str1和str2,调用fun函数,使其功能改为统计字符串2在字符串1中出现的次数. #include<stdio.h>#include<string.h>i

js统计字符出现次数

var s = "The rain in Spain falls rain mainly in the rain plain"; var reg = new RegExp("rain", "g"); alert(s.match(reg).length);

统计字符次数

输入一个字符串(长度在100以内),统计其中数字字符出现的次数. 样例输入 Ab100cd200 样例输出 6 #include"stdio.h" int main() { char a[100]; int i; int sum=0; scanf("%s",a); for(i=0;a[i]!='\0';i++) if(a[i]>='0'&&a[i]<='9') sum++; printf("%d",sum); retu

定义一个字符数组并初始化,统计字符&#39;a&#39;或&#39;A&#39;出现的次数

1 package com.imooc.array; 2 3 public class SortDemo2 { 4 5 public static void main(String[] args) { 6 //定义一个字符数组并初始化,统计字符'a'或'A'出现的次数 7 //定义一个字符数组ch并初始化 8 char[] ch={'a','b','c','A','a','d','a','e','f','g'}; 9 //循环遍历数组,统计字符'a'或'A'出现的次数 10 int sum=0;

哈希表-统计字符出现的次数

第一个只出现一次的字符:在字符串中找出第一个只出现一次的字符.如输入“abaccdeff”则输出b 答案:由于题目出现了与字符出现次数相关.我们可以利用一个容器来存放每个字符出现的次数,也就是说这个容器的作用是把一个字符隐射成一个数字.所以我们利用哈希表. #include <QCoreApplication> #include<iostream> #include<QDebug> char findOnlyOneChar(char *inputString) { if

【c++程序】统计字符串中字符出现次数

#include<iostream> #include<string> //#include<cstring> using namespace std; int main() { string str; cout<<"input some text:"<<endl; getline(cin,str); //char str[200]; //cin.getline(str,200); int cnt[256]={}; for(i

29:统计字符数

29:统计字符数 查看 提交 统计 提问 总时间限制:  1000ms 内存限制:  65536kB 描述 给定一个由a-z这26个字符组成的字符串,统计其中哪个字符出现的次数最多. 输入 输入包含一行,一个字符串,长度不超过1000. 输出 输出一行,包括出现次数最多的字符和该字符出现的次数,中间以一个空格分开.如果有多个字符出现的次数相同且最多,那么输出ascii码最小的那一个字符. 样例输入 abbccc 样例输出 c 3 来源 1744 1 #include<iostream> 2 #