我的字符串压缩的 for 循环有点偏离。在过去的 5 天里,我一直在做这项任务,但我一生都无法弄清楚出了什么问题。有人可以帮我吗?
例如,我传递了字符串"TTTTrrrEe"
,而不是得到T4r3Ee
,我得到T4r3EeTT
。我不知道为什么它会像那样跳回到字符串的开头,但我越来越近了。我们只能使用charAt
, equals
, length
, andsubstring
。
有人可以通过帮助纠正我的逻辑来帮助我朝着正确的方向前进吗?我仍然想尝试自己编写代码,看看它是如何分配的。
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;
}