编程题--给定一个字符串数组,判断每个字符出现次数
来源:互联网 发布:apache文件服务器搭建 编辑:程序博客网 时间:2024/04/30 15:10
题目要求:给定一个字符串数组,判断每个字符出现多少次?
解决思路:利用Map的特性:即Map集合中如果两个key(键)值是一样相同的,那么,后放(put)入的值会将前面存在的value(值)替换掉,也就是覆盖了前面的value。
所以把字符数组中的字符当作key,每遇到相同的key,value值加1即可。代码如下:
public class HsahMapTest{ /** * 给定一个字符串数组,判断其中每个字符出现了多少次,并打印输出 * @param args */ public static void main(String[] args) { HashMap<String,Integer> map = new HashMap<String,Integer>(); String[] str = {"a", "hello", "a", "hello", "b", "c","b"}; for(int i = 0; i < str.length; i ++) { if(map.get(str[i]) == null) { map.put(str[i], 1); } else { map.put(str[i], map.get(str[i])+1); } } //遍历map Set<String> keys = map.keySet(); for(Iterator<String> iter = keys.iterator(); iter.hasNext(); ) { String key = iter.next(); System.out.println(key + "=" + map.get(key)); } }}
运行结果:
a=2
b=2
c=1
hello=2
另一种我一开始写错了,但经过思考想通了为什么得不到正确的结果,代码如下:
public class HsahMapTest{ /** * 给定一个字符串数组,判断其中每个字符出现了多少次,并打印输出 * @param args */ public static void main(String[] args) { HashMap<String,Integer> map = new HashMap<String,Integer>(); String[] str = {"a", "hello", "a", "hello", "b", "c","b"}; for(int i = 0; i < str.length; i ++) { if(map.get(str[i]) == null) { map.put(str[i], 1); } //出错的地方在这个if if(map.get(str[i]) != null) { map.put(str[i], map.get(str[i])+1); } } //遍历map Set<String> keys = map.keySet(); for(Iterator<String> iter = keys.iterator(); iter.hasNext(); ) { String key = iter.next(); System.out.println(key + "=" + map.get(key)); } }}
运行结果:
a=3
b=3
c=2
hello=3
错误原因分析:第一次value为null,执行第一个if时,put进值;接着再执行下一个if语句,判断,满足第二个if条件,于是加1。之后正常。所以总是比正确结果要多一次。
0 0
- 编程题--给定一个字符串数组,判断每个字符出现次数
- 面试编程题1:给定一个字符串,统计出每个字母出现次数
- 在控制台输入一个字符串 判断每个字符出现的次数
- 判断字符串中每个字符出现的次数
- 判断字符串中每个字符出现的次数
- 给定一个字符串,统计一下哪个字符出现次数最大
- 给定一个字符串找出出现次数最多的字符
- 计算一个字符串中每个字符出现的次数
- 输入一个字符串 打印出每个字符出现的次数
- 求一个字符串中每个字符出现的次数
- 统计一个字符串中每个字符出现的次数
- 统计一个字符串中每个字符出现的次数
- 统计一个字符串中每个字符出现的次数
- 统计字符串每个字符出现的次数
- 统计字符串中的每个字符出现次数
- 编程:判断一个给定字符串中字符全都不同java
- 实现给定一个字符串剔除重复字符,并统计各个字符出现的次数
- 给定一个字符串,求出该字符串里哪个字符出现的次数最多
- 伪数组的概念
- WEB前端面试题—20170405
- 借贷记账法
- 递归递推练习―K―强化斐波那契
- tensorflow(1) 共享变量
- 编程题--给定一个字符串数组,判断每个字符出现次数
- 蓝桥杯 煤球数目
- 浅谈Promise
- 流
- Virtualbox 与VMWare中网络模式区别
- 堆排序
- 手机触摸屏的JS事件
- window.event
- 微服务架构:理解什么是微服务