给定一个字符串,请输出这个字符串由哪些字符组成,出现过多少次(统计字符串每个字符出现的次数)

有两种方法可以解决一种是利用HashMap解决
另一种是利用ASCII编码进行转换存储在数组中打印出来
ASCII解决的方案我就不写了,参照下面文章吧!如果这一块你掌握的不是太好,这几道练习题会对你有帮助的!
给定一个由数字组成的字符串,统计每个数字出现的次数
给定一个长度,随机产生一个该长度的字符串,由大写小写字母以及数字组成 Java中随机数的生成


题目


给定一个字符串,请输出这个字符串由哪些字符组成,出现过多少次?

接下来我是用HashMap解决的,直接贴代码了,详解见注释


import java.util.*;
/** 
* @author Ziph
* @date 2020年3月6日
* @Email [email protected]
*/
public class Homework14 {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		System.out.print("请输入一个字符串:");
		String str = sc.nextLine();
		count(str);
	}
	
	public static void count(String str) {
		//将字符串转化为字符数字
		char[] chars = str.toCharArray();
		//创建一个HashMap集合
		Map<Character, Integer> map = new HashMap<Character, Integer>();
		//遍历字符数组
		for (char c : chars) {
			//当c字符首次存在于map中记录1
			if (!map.containsKey(c)) {
				map.put(c, 1);
			} else {
				//多次存在map中+1记录就OK
				//实际上就是c字符每出现一次覆盖一次该key的value值(+1后的value值)
				map.put(c, map.get(c) + 1);
			}
			//可以把if-else更换为下面的表达式更显简单
			//map.put(c, map.containsKey(c) ? map.get(c) + 1 : 1);
		}
		//打印结果
		for (Character key : map.keySet()) {
			System.out.println(key + " 字符在字符串中出现过 " + map.get(key) + " 次");
		}
	}
}

在这里插入图片描述

发布了103 篇原创文章 · 获赞 162 · 访问量 3万+

猜你喜欢

转载自blog.csdn.net/weixin_44170221/article/details/104707157