よくある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();
}