我想知道是否有人可以幫我弄清楚爲什麼我的代碼沒有做到我期望的那樣做。這個想法是在StringBuffer
中統計下列相同的字母,並將其轉換爲如下形式AABBC => 2A2B1C
。現在我的程序沒有這樣做,這可能與我對這些新學到的概念的糟糕用法有關。我是否必須將轉換爲char
才能打印出來?或者,我的代碼的結構本質上是錯誤的?我也不確定我能用StringBuffer
做什麼,不能做什麼。我不明白使用StringBuffer,追加,轉換規則
package package1;
public class Strings {
public static void main(String[]args){
int marker = 1;
StringBuffer s2 = new StringBuffer();
StringBuffer s = new StringBuffer("AAAA");
for(int i = 0; i<=s.length(); i++){
while(s.charAt(i) == s.charAt(i+1)){
marker++;
}
i += marker;
s2.append(marker);
s2.append(s.charAt(i));
marker = 0;
}
System.out.println(s2); // It simply prints out nothing
}
}
使用調試器來了解發生了什麼 – Jens
不要在循環中更改「i」。它會導致這樣的問題 – Jens