码迷,mamicode.com
首页 > 其他好文 > 详细

字符串压缩

时间:2021-06-16 18:20:13      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:rar   返回   范围   highlight   public   array   dex   utils   builder   

public class StrCutDown {
    /**
     * 字符串压缩范围[a-zA-Z] 输入如:aaabbbccca =>> a3b3c3a1
     * 压缩后的字符串要小于原字符串,否则返回原字符串
     * @param args
     */
    public static void main(String[] args) {
        String str = "aaabbbccca";
        System.out.println(strZip(str));
    }

    public static String strZip(String source) {
        if (StringUtils.isBlank(source)) {
            return source;
        }
        char[] c = source.toCharArray();
        if (c.length == 1) {
            return source;
        }
        int i = 0;
        int j = 1;
        StringBuilder stringBuilder = new StringBuilder();
        int index = 1;
        while (i < c.length && j < c.length) {
            if (c[i] == c[j]) {
                index++;
                j++;
            } else {
                stringBuilder.append(c[i]).append(index);
                i = j;
                j = i + 1;
                index = 1;
            }
            if (j >= c.length) {
                stringBuilder.append(c[i]).append(index);
            }
        }
        return source.length() <= stringBuilder.length() ? source : stringBuilder.toString();
    }

}

 

字符串压缩

标签:rar   返回   范围   highlight   public   array   dex   utils   builder   

原文地址:https://www.cnblogs.com/Small-sunshine/p/14889042.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!