关于char[]的赋值问题,求各位帮忙解决

char[] ch={'1','0','0','1'};
char[] nch=new char[9];
for(int i=0;i<6;i++){
nch[i]='0';
}
for(int i=6;i<nch.length;i++){
for(int j=0;j<ch.length;j++){
nch[i]=ch[j];
}
}
System.out.println(nch);
为什么输出的是000000111,不是000000100

第二处嵌套循环 由于内层的循环最终状态永远是 ch[3] 也就是1 所有从nch[6]开始后面都是1

for(int i=6;i<nch.length;i++)
{
for(int j=0;j<ch.length;j++)
{
nch[i]=ch[j];
}
}

nch 前六个是0 ,后面三个因为内层循环,最后一个是 1;

第二个循环 给每个nch的值赋了4遍值,都被最后的ch[3] = ‘1’给覆盖了,
想要你的输出结果应该是
for(int i = 6; i < nch.length; i++) {
nch[i]=ch[i-4];
}

for(int j=0;j<ch.length;j++){
nch[i]=ch[j];
} 这个循环每次都取ch字符数组的最后一个值赋值给nch这个数组,从nch数组的第六位开始,赋值3次