1. 程式人生 > 實用技巧 >基本字串壓縮Java實現

基本字串壓縮Java實現

利用字元重複出現的次數,編寫一個方法,實現基本的字串壓縮功能。比如,字串“aabcccccaaa”經壓縮會變成“a2b1c5a3”。若壓縮後的字串沒有變短,則返回原先的字串。
給定一個string iniString為待壓縮的串(長度小於等於10000),保證串內字元均由大小寫英文字母組成,返回一個string,為所求的壓縮後或未變化的串。
測試樣例
“aabcccccaaa”
返回:”a2b1c5a3”
“welcometonowcoderrrrr”
返回:”welcometonowcoderrrrr”

public String compressStr(String srcStr){
        if(srcStr == null){
            return null;
        }
        StringBuilder sb = new StringBuilder();
        int length = srcStr.length();
        char c1 = srcStr.charAt(0);
        int sum = 1;
        for (int i = 1; i < length;i++){
            
char c2 = srcStr.charAt(i); if (c1 == c2){ sum++; continue; } if (sum > 1){ sb.append(c1).append(sum); }else { sb.append(c1); } c1 = c2; sum = 1; }
// 處理最後一個字元 if(sum>1){ sb.append(c1).append(sum); }else{ sb.append(c1); } return sb.toString(); }