以下代码产生此输出:
aaab -> aabb -> abbb -> bbbb
我的目标是让它看起来像这样:
aaab -> aaba -> abaa -> baaa
但我很难弄清楚为什么我会得到这个结果。
String abcd = 'abcd';
int l=3;
byte[] word=new byte[]{abcd[0],abcd[0],abcd[0],abcd[0]};
System.out.println(new String(word)); // print: aaaa
while (l >= 0) {
byte[] present=word; // !!!
present[l + 1 - (l - (--l))] = abcd[1];
System.out.println(new String(present)); // print: aaab -> aabb -> abbb -> bbbb
}
System.out.println(new String(word)); // print: bbbb
如果我改变这一行(5):byte[] present=word;
到byte[] present=new byte[]{abcd[0],abcd[0],abcd[0],abcd[0]};
然后我得到所需的输出。为什么会这样?