【发布时间】:2017-12-05 06:23:48
【问题描述】:
我想知道是否有人可以帮助我弄清楚为什么我的代码没有按照我的预期执行。这个想法是计算StringBuffer 中相同的以下字母并将其转换为类似AABBC => 2A2B1C 的内容。现在我的程序没有这样做,这可能与我对这些新学概念的使用不当有关。我是否必须将marker 转换为char 才能打印出来?还是我的代码结构本质上是错误的?我也不确定StringBuffers 能做什么,不能做什么。
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
}
}
【问题讨论】:
-
使用调试器找出发生了什么
-
不要更改循环内的
i。会导致这样的问题
标签: java loops char type-conversion stringbuffer