文字列圧縮の for ループが少しずれています。私は過去 5 日間この課題に取り組んできましたが、何が悪いのか一生わかりません。誰かが私を助けることができますか?
たとえば、文字列を渡したところ、"TTTTrrrEe"
を取得する代わりに を取得T4r3Ee
していT4r3EeTT
ます。なぜそのように文字列の先頭に戻るのかはわかりませんが、近づいています。文字列クラスのcharAt
、equals
、length
、およびのみを使用できます。substring
誰かが私の論理を修正するのを手伝って、私を正しい方向に導くのを手伝ってくれますか? 私はまだこれを自分でコーディングしてみたいと思っています。
public static String compress(String s){
int count = 0;
String temp = s.substring(0,1);
for(int i = 0; i < s.length(); i++){
if(i !=s.length()-1){
if(temp.equals(s.substring(i,i+1))){
count++;
}else{
if(count < 1){
System.out.print(s.substring(i,i+2));
System.out.print(temp.substring(0,1) );
}else{
System.out.print("" + temp.substring(0,1) + count);
i--;
temp = s.substring(count,count+1);
System.out.println(" temp is now " + temp);
count = 0;
//i--;
}
}
}
}
System.out.println(temp);
return temp;
}