字符串壓縮


1、問題描述

  通過鍵盤輸入一串大寫字母(A~Z)組成的字符串。請編寫一個字符串壓縮程序,將字符串連續出現的重復字母進行壓縮,並輸出壓縮后的字符串。

 

2、基本要求:

  (1)僅壓縮連續重復出現的字符。比如字符串“ABCBC”由於無連續重復字符,壓縮后的字符串還是“ABCBC”。

  (2)壓縮字段的格式為“字符重復的次數+字符”。例如:字符串“XXXYYYYYYZ”壓縮后就成為“3X6YZ”。

 

3、設計思路:

  利用循環嵌套,外循環遍歷字符串,內循環檢測有多少個字母是相同的數。

  如:字符串XXXYYYYYYZZZ,外循環循環變量i,內循環循環變量j,當i =

  0時,第一次進入內循環,使j從i的下一位開始檢測字符串,如果Str[i]與Str[j]相

  同時,計數變量增加。直到Str[i]與Str[j]不相同,直接輸出計數變量和字符Str[i],

  並將此時的j賦值給變量i,跳過已經遍歷過的字符片段。直到將整個字符串遍歷完成。

 

4、源代碼:

package cn.test.termtest.uglynumber;

import java.util.Scanner;

public class Dupletter {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        Scanner sc=new Scanner(System.in);
        String inStr=sc.next();                      //固定不變的
        StringBuffer outStr=new StringBuffer("");     //需要修改的
        char preChar = inStr.charAt(0);
        char curChar;
        int count=1;
        for(int i=1;i<inStr.length();i++) {
            curChar=inStr.charAt(i);
            if(curChar!=preChar) {
                
                    outStr.append(count);
                outStr.append(preChar);
                count=1;
                preChar=curChar;
            }else
                count ++;
        }
        
            outStr.append(count);
        outStr.append(preChar);
        System.out.println(outStr);
    }

}

 

5、運行結果:

  (1)輸入XYZASDAS

  

 

 

  (2)輸入XXXYYYYYYZZZ

   

 


免責聲明!

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



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