よくあるjavaの問題

1996 ワード

第1題は、キーボードで小文字(a~z)からなる文字列を入力します.文字列圧縮プログラムを作成し、文字列に連続して出席する重複文字を圧縮し、圧縮された文字列を出力してください.圧縮ルール:1、連続して繰り返される文字のみを圧縮します.例えば、文字列「abcbc」は、連続的な重複文字がないため、圧縮された文字列は「abcbc」である.2、圧縮フィールドの形式は「文字の重複回数+文字」である.たとえば、文字列「xxxyyyyyyyyz」は圧縮されて「3 x 6 yz」になります.要求実装関数:
public static String compress(String str){
        StringBuilder sb = new StringBuilder();
        char[] arr = str.toCharArray();
        char last = arr[0];
        int count =1;
        for(int i=1;ichar b = arr[i];
            if(b == last){
                count++;
                continue;
            }
            if(count == 1){
                sb.append(last);
            } else {
                sb.append(count).append(last);
            }
            count = 1;
            last =b;
        }
        if(count ==1){
            sb.append(last);
        } else {
            sb.append(count).append(last);
        }

        return sb.toString();
    }