【字符串】字符串的简单统计功能

* 字符串统计
 * 利用字符串重复出现的次数,编写一个方法,实现基本的字符串统计功能。
 * 若统计前的字符没有变短,则返回原来字符串。
 * 给定一个string src 为待定统计的串,保证串内字符均由大小写英文字母组成,返回一个string为所求。
 * 如:aabcccccaaa  经压缩为a2b1c5a3
 * 思路:
 * 扫描字符串,利用stringBuilder实现动态累加字符,将上一次出现的字符及其出现系数加入sb;
 * 第一个出现的字符和最后一次出现的字符需特别处理。

 1 private static String zipStr(String str) {
 2         int count=0;
 3         int last=0;
 4         StringBuffer sb=new StringBuffer();
 5         
 6         for (int i = 0; i < str.length(); i++) {
 7             char c=str.charAt(i);
 8             if(sb.length()==0){//考虑第一个字符
 9                 sb.append(c);
10                 count++;
11             }else{
12                 //和上一个字符相同
13                 if(c==last){
14                     count++;
15                 }else{
16                     sb.append(count).append(c);
17                     count=1;
18                 }
19             }
20             last=c;
21         }
22         if(count>=1){//处理最后一个字符
23             sb.append(count);
24         }
25         if(sb.length()>=str.length()){
26             return str;
27         }
28         return sb.toString();
29     }
字符串统计

posted on 2021-01-25 22:47  丁不煮  阅读(277)  评论(0编辑  收藏  举报

导航