基本字符串壓縮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();
    }

 

  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM