我想壓縮一個字符串。例如,如果用戶輸入是「aaabbcccd」 - 輸出應計數字母,如果count超過1,則打印該字母,然後輸入數字:a3b2c3d。壓縮一個字符串「aaabbccccd」爲「a3b2c4d」
這就是我想到的,但我在控制檯中的輸出仍然不正確。
public class Compress {
public static void main(String[] args) {
String a = IO.readString();
int aLength = aLength.length();
int repeatedStart = 0;
int repeatedLength = 1;
int currentStart = 0;
int currentLength = 1;
for(int i = 1; i < aLength; i++) {
if(a.charAt(i) == a.charAt(i-1)) {
currentLength+=1;
if(currentLength > repeatedLength) {
repeatedStart = currentStart;
repeatedLength = currentLength;
IO.outputStringAnswer(repeatedLength+""+a.charAt(repeatedStart));
}
} else {
currentStart = i;
currentLength = 1;
IO.outputStringAnswer(currentLength+""+a.charAt(currentStart));
}
}
}
}
我在控制檯輸出爲:
--------MacBook-Pro:cs ----------$ java Compress
aaaabbcc
RESULT: "2a"
RESULT: "3a"
RESULT: "4a"
RESULT: "1b"
RESULT: "1c"
我知道我的outputStringAnswer肯定是放錯了地方。任何幫助將不勝感激。
謝謝
是不是你的終端flare(忘了名字)過長? :)我的意思是,這條線不是經常打破一點? :p至於具有建設性的東西:通過一些調試語句(print)找出你的程序正在做什麼。 – keyser
結果應該以'd1'還是單個'd'結尾? – Pshemo
如果用戶輸入已經包含數字,該怎麼辦? –