1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > 统计字符串中字母出现次数 并按出现次数排序

统计字符串中字母出现次数 并按出现次数排序

时间:2020-03-08 10:40:46

相关推荐

统计字符串中字母出现次数 并按出现次数排序

取出一个字符串中字母出现的次数。注意:

1、数字不算字母

2、输出的结果,根据出现次数从多到少

如:字符串:“abcdekka27qoq” ,输出格式为:a(3)k(2)b(1)…

代码:

import java.util.HashMap;import java.util.Map;import java.util.Set;public class KaoShi1 {public static void main(String[] args) {// 1. 定义一个字符串String s = "abcdekka27qoq";// 2. 将字符串中的每一个字符转换成一个字符数组char[] ch = s.toCharArray();// 3. 创建一个Map集合,用于存储字符与出现次数的关系Map<Character,Integer> map = new HashMap<Character, Integer>();// 4. 遍历ch数组,将字符串中的每一个字符获取到,判断是不是数字// 0-9--->48-57 a-z 97-122 A-Z 65-90for(char c : ch) {if((c >= 65 && c <= 90) || (c >= 97 && c <= 122)) {// 5. 判断当前的字符c是不是第一次存储在map中// 1) 第一次存储 : 计数1// 2) 不是第一次存储 : 原有计数+1if(map.containsKey(c)) {map.put(c, map.get(c)+1);}else{map.put(c, 1);}}}System.out.println(map);//6. 需要将value的值从大到小进行输出// 遍历map集合,每次将map中的最大value值获取到,输出value和key,循环进行输出Set<Character> set= map.keySet();// 获取到map集合中的所有key值while(!map.isEmpty()) {// 7. 通过遍历每一个key的值,获取到对应的value值int maxValue = 0;Character maxZiFu = null;for(Character cha : set) {int value= map.get(cha);if(value > maxValue) {// 为了将当前map集合中的最大值获取到maxValue = value;maxZiFu = cha;}}System.out.println(maxZiFu + "==" + maxValue);// 8. 将最大的键值对输出之后,从map集合中删除map.remove(maxZiFu);}}}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。