Java统计数组中各个数字出现的个数和字符串中各个字符出现的个数
一、前言
对于统计个数问题,我们一般利用HashMap来解决,其中key表示原始元素值,value表示其出现个数或出现次数。主要步骤为:
1、创建一个HashMap<Character, Integer>型或HashMap<Integer,Integer>型的HashMap对象map;
2、遍历数组或字符串,对其中元素分情况讨论:
(1)map的key中无此元素,此时将此元素的个数置为1;
(2)map的key中有此元素,首先需将该元素的个数取出,更新加一后再放入map中;
(3)重复以上操作直至遍历结束。
二、统计数组中各个数字出现的个数
package fighting;
import java.util.*;
public class fighting
{public static void main(String[] args) {int arr[]= {1,1,1,3,3,4,3,2,4,2};HashMap<Integer,Integer> map=new HashMap<Integer,Integer>();for(int a:arr){if(map.containsKey(a))//map的containsKey()用于判断当前map是否含有元素key=i对应的value值{int val=map.get(a);//map的get方法是获取当前元素key=i的value值val++;map.put(a, val);//将value值加一后利用map的put方法放入原map中}else{map.put(a, 1);//若当前map中没有key=i对应的value值则将其put到map中,且令其value=1;当再次遇到相同元素则执行if操作}}for(int num:map.keySet())//map的keySet()方法是获取map中所有key值{System.out.println(num+":"+map.get(num));}}
}//显示结果
1:3
2:2
3:3
4:2
三、统计字符串中各个字符出现的个数
package fighting;
import java.util.*;
public class fighting
{public static void main(String[] args) {String str="leetcodeleetcode";HashMap<Character,Integer> map=new HashMap<>();//第二种写法HashMap<Character,Integer> map=new HashMap<Character,Integer>();即前面已经定义好泛型后面可以省略不写,其中key-value对应与字符-出现个数for(int i=0;i<str.length();i++)//注意此处不使用增强型for循环,因为我们需要用charAt()依次读取每个字符{char ch=str.charAt(i);if(!map.containsKey(ch)){map.put(ch,1);}else{int val=map.get(ch);val++;map.put(ch,val);}}for(char c:map.keySet())//此处输出注意与数组数字输出相区别,一个为char类型,一个为int类型{System.out.println(c+":"+map.get(c));}}
}//显示结果
c:2
t:2
d:2
e:6
l:2
o:2
Java统计数组中各个数字出现的个数和字符串中各个字符出现的个数相关推荐
- 给定数组A []和数字X,请检查A []中是否有对X | 使用两个指针算法,O(1)空间复杂度| 套装2...
Prerequisite: 先决条件: Hashing data structure 散列数据结构 Given an array A[] and number X, check for pair in ...
- 遍历这些字符串,如果字符串没有包含数字的, * 就将字符串中的小写字母转成大写字母并打印字符串
package Day08;import java.util.Scanner;/*** 有如下字符串:"12ab","java","cd", ...
- 遍历这些字符串,如果字符串没有包含数字的,就将字符串中的小写字母转成大写字母并打印字符串
package cn.silence;public class StrDemo3 {/*** 有如下字符串:"12ab","java","cd&quo ...
- 【转】SQL函数:字符串中提取数字,英文,中文,过滤重复字符
SQL函数:字符串中提取数字,英文,中文,过滤重复字符 --提取数字 IF OBJECT_ID('DBO.GET_NUMBER') IS NOT NULL DROP FUNCTION DBO.GET_ ...
- 汇编语言: 从键盘上输入一串字符(用回车键结束,使用 10 号功能调用。)放在 STRING 中,试 编制一个程序测试字符串中是否存在数字。如有,则把 CL 的第 5 位置 1,否则将该位置置 0。
从键盘上输入一串字符(用回车键结束,使用 10 号功能调用.)放在 STRING 中,试 编制一个程序测试字符串中是否存在数字.如有,则把 CL 的第 5 位置 1,否则将该位置置 0. data s ...
- 从字符串中首次出现的位置开始输出字符串中的字符
从键盘输入一个字符串和一个字符,然后从该字符在字符串中首次出现的位置开始输出字符串中的字符,如果未找到该字符,则输出"Not Found". int match(char *s,c ...
- java正则获取数字_Java通过正则表达式获取字符串中数字的方法示例
前言 本文通过一个小范例来学习java中通过正则表达式如何获得一个字符串中的数字,下面话不多说,来看看详细的介绍吧. 示例代码如下: import java.util.regex.Matcher; i ...
- java 正则 提取数字_java使用正则提取字符串中的数字(例如提取短信中的验证码)详解...
使用java正则可以很方便的从字符串中提取符合条件的内容. 1.提取字符串中所有的手机号: private void getPhoneNum(String smsBody) { Pattern pat ...
- php的strpos不支持数字,php使用strpos判断字符串中数字类型子字符串出错的解决方法 原创...
php使用strpos判断字符串中数字类型子字符串出错的解决方法 原创 这里有新鲜出炉的 PHP 面向对象编程,程序狗速度看过来! PHP 开源脚本语言 PHP(外文名: Hypertext Prep ...
最新文章
- Socket Programming on Android
- RequestDispatcher
- java bmp_JAVA实现对BMP图片的读取
- 循环控制_continue语句
- CNN和RNN中如何引入BatchNorm
- 软工作业PSP与单元测试训练
- X86汇编语言从实模式到保护模式20:平坦模型
- mysql.data已拥有为,MYSQL LOAD DATA INFILE忽略重复行(自动增量作为主键)
- Perf -- Linux下的系统性能调优工具
- (转)是时候说说Pivotal这个富二代了!
- 英特尔核显驱动hd630_技术力井喷!深度解析英特尔11代酷睿处理器
- 解决谷歌地图偏移问题
- 六大危害不容忽视 笔记本外接显示器杂谈
- 迪文串口屏(DMG10600C101-03WTC)的通讯测试
- android 自定义view: 跑马灯-光圈
- 【小技巧】argc和argv的用法
- Springboot旅游网的设计与实现xb29f计算机毕业设计-课程设计-期末作业-毕设程序代做
- IDEA 控制台窗口双击最大化
- fileupload实现多文件批量上传
- 微信小程序怎么新建页面