java怎么实现统计⼀个字符串中字符出现的次数
问题:假设字符串仅仅保护a-z 的字母,java怎么实现统计⼀个字符串中字符出现的次数?⽽且,如果压缩后的字符数不⼩于原始字符数,则返回。
处理逻辑:⾸先拆分字符串,以拆分出的字符为key,以字符出现次数为value,存⼊Map中。
源码如下:
1import java.util.HashMap;
2import java.util.Iterator;
3import java.util.Map;
4
5public class TestCompress {
6
7public static void main(String[] args) {
8 String str = "aaabbbcccdfb";
9 compress(str);
10 }
11
12public static void compress(String str) {
13 Map<String, Integer> count = new HashMap<String, Integer>();
14 String[] myStrs = str.split("");
15for (int i = 0; i < myStrs.length; i++) {
16int totalNum = 1;
17 String currentStr = myStrs[i];
18if (ainsKey(currentStr)) {
19 totalNum = (currentStr) + 1;
20 }
21 count.put(currentStr, totalNum);
22 }
23int num = count.size();
24 System.out.println("压缩结果");
25if (num == myStrs.length) {
26 System.out.println("各个字母都不⼀样,直接返回");
27 System.out.println(str);
28return;
29 }
30 String result = "";
31 Iterator<Map.Entry<String, Integer>> it = Set().iterator();
32while (it.hasNext()) {
33 Map.Entry<String, Integer> entry = it.next();
34 result = result + Key() + Value();
35 }
36 System.out.println(result);
37 }
38 }
运⾏结果:
1压缩结果字符串长度统计
2 a3b4c3d1f1
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论